练习一

public class H1_Test {
public static void main(String[] args) {
H1_News h1News = new H1_News("新冠确诊病例超千万,数百万印度教信徒赴恒河\"圣浴\"引民众担忧");
//英文字符的双引号需要用到转义字符,否则报错;而中文的不需要
H1_News h1News1 = new H1_News("男子突然想起2个月前钓的鱼还在网兜里,捞起一看赶紧放生"); ArrayList arrayList = new ArrayList();
arrayList.add(h1News);
arrayList.add(h1News1); for (int i = arrayList.size()-1; i >= 0 ; i--) {
//这里需要size-1,否则抛出异常:IndexOutOfBoundsException,原因很明显
H1_News h1News2 = (H1_News) arrayList.get(i);
String s = h1News2.getTopic();
if (s.length()>15){
System.out.println(s.substring(0,15)+"...");
//使用到获取字符串字串的方法 substring ,注意点是:参数截取的是前闭后开
}else
System.out.println(arrayList.get(i));
//这里的处理标题的程序可以封装到一个方法里面 processTopic
}
}
}

练习二


练习三

public class H3_test {
public static void main(String[] args) {
Map hashMap = new HashMap(); hashMap.put("jack",650);
hashMap.put("tom",1200);
hashMap.put("smith",2900); hashMap.put("jack",2600); //更新即替换 //HashMap的遍历方式:获取集合(keySet,entrySet,values),
// 然后遍历(迭代器,增强for循环)
// map 的get 方法:根据键,获取值
Set set = hashMap.keySet();
for (Object o : set) {
hashMap.put(o,(Integer)hashMap.get(o)+100);
System.out.println(o);
}//加薪100 System.out.println(hashMap); Set set1 = hashMap.entrySet();
Iterator iterator = set1.iterator();
while (iterator.hasNext()) {
Map.Entry next = (Map.Entry) iterator.next();
System.out.println(next.getValue());
}
}
}

练习四、五

抛出 ClassCastException

重点:理解 TreeSet

https://www.cnblogs.com/ffforward/p/15425433.html


练习六( ! )

注意点:

(1)HashSet不允许元素重复;

(2)hashCode和equals方法已被重写

理解:

(1)hashSet.remove(p1) 失败:

将 p1.name 改为 "CC" 后,p1的 hashCode 改变了,再次通过 p1 的hash值计算索引的时候,计算到的索引和 add 时候的索引已不一致。

(2)hashSet.add(new H6_Person(1001, "CC")) 该参数和 p1 应该被判断被equals ,为何能 add:

由 id 和 name 计算出来的 hashCode 和修改前的 p1 并不一致,所以加入的是不同索引处的位置。


练习七

Java集合-练习巩固的更多相关文章

  1. Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结

    2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash--系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度.唯品会.58同城.新浪微博.趣分 ...

  2. Scala集合和Java集合对应转换关系

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...

  3. java集合你了解多少?

    用了java集合这么久,还没有系统的研究过java的集合结构,今天亲自画了下类图,总算有所收获. 一.所有集合都实现了Iterable接口. Iterable接口中包含一个抽象方法:Iterator& ...

  4. 深入java集合学习1-集合框架浅析

    前言 集合是一种数据结构,在编程中是非常重要的.好的程序就是好的数据结构+好的算法.java中为我们实现了曾经在大学学过的数据结构与算法中提到的一些数据结构.如顺序表,链表,栈和堆等.Java 集合框 ...

  5. Java集合框架List,Map,Set等全面介绍

    Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +- ...

  6. Java集合框架练习-计算表达式的值

    最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...

  7. 【集合框架】Java集合框架综述

    一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...

  8. Java 集合框架

    Java集合框架大致可以分为五个部分:List列表,Set集合.Map映射.迭代器.工具类 List 接口通常表示一个列表(数组.队列.链表 栈),其中的元素 可以重复 的是:ArrayList 和L ...

  9. Java集合概述

    容器,是用来装东西的,在Java里,东西就是对象,而装对象并不是把真正的对象放进去,而是指保存对象的引用.要注意对象的引用和对象的关系,下面的例子说明了对象和对象引用的关系. String str = ...

  10. 深入java集合系列文章

    搞懂java的相关集合实现原理,对技术上有很大的提高,网上有一系列文章对java中的集合做了深入的分析, 先转载记录下 深入Java集合学习系列 Java 集合系列目录(Category) HashM ...

随机推荐

  1. python学习第八周总结

    多进程实现TCP服务端并发 之前我们学习了用socket模块进行文字以及文件的传输,但是之前的操作一个服务端只能与一个客户端进行交互,如果要想实现多个客户端与服务端交互的并发效果,我们需要进行如下操作 ...

  2. linux 基础(7)账号和群组的管理

    了解账号和群组的基本信息 账号使用 如何查看 linux 计算机上有哪些账号呢?账号的信息储存在/etc/passwd中,打开就可以看到: less /etc/passwd root:x:0:0:ro ...

  3. 2211-13 flask模板

    第 3 章:模板 在一般的 Web 程序里,访问一个地址通常会返回一个包含各类信息的 HTML 页面.因为我们的程序是动态的,页面中的某些信息需要根据不同的情况来进行调整,比如对登录和未登录用户显示不 ...

  4. 如何通过C#/VB.NET代码在Word中更改字体颜色

    在日常工作中,我们有时会需要修改字体的颜色来突出文本重点,让读者更容易抓住文章要点.在今天这篇文章中,我将为大家介绍如何以编程方式,在Word更改字体颜色.本文将分为两部分分别介绍如何实现此操作.以下 ...

  5. 五大数据类型 - 字符串 - 列表 list - 集合set - 有序集合 - 哈希 hashMap

    基础知识 redis默认有16个数据库:默认使用的是第0个. 可以使用select num切换 查看DB大小 DBSIZE 查看所有的key **keys ** 清空当前数据库 flushdb 清空全 ...

  6. Unreal 各种指针类型是怎么回事

    引言 读完本篇文章,你会了解为何UE中C++作为其开发语言,使用的指针,为何各式各样. 你需要对UE有所了解,如果不了解也没关系,也可以看下这篇文章,就当了解一下最复杂的应用的系统指针设计是如何. 可 ...

  7. 基于jib-maven-plugin快速构建微服务docker镜像

    一.说明 本文介绍基于 Maven 插件 jib-maven-plugin 实现快速构建 Spring Boot 程序镜像,并推送到远程仓库中,且 无需安装 Docker 环境 . Jib 是 Goo ...

  8. Training Spiking Neural Networks with Local Tandem Learning

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 36th Conference on Neural Information Processing Systems (NeurIPS 202 ...

  9. Vue急速入门-5

    vue-cli创建项目 前端工程化,项目>>>(vue-cli),创建处vue项目,单页面应用(spa) vue-cli创建项目开发,在项目中开发,最后上线,一定要编译 '纯粹的ht ...

  10. [AI-ML]机器学习是什么?一起了解!(一)

    机器学习 简单的说,机器学习是一种让计算机系统从数据中学习并自动改进的算法.通俗地说,机器学习就是让计算机从数据中"学习",并使用这些学习成果来做出决策或预测. 学术解释中,机器学 ...