集合框架(重点)
1. 什么是集合框架
List有序插入对象,对象可重复
Set无序插入对象,对象不可重复(重复对象插入只会算一个)
Map无序插入键值对象,键只唯一,值可多样
(这里的有序无序指的是下标,可以理解为List可以通过for [i] 循环来遍历集合,每个xxx[i]对应一个对象)
2. List接口(ArrayList和LinkedList)
ArrayList和我们之前学过的数组差不多,util提供的方法也与数组类似
LinkedList则是Node来进行连接,util提供的方法和数组完全不同
ArrayList添加&删除举例:
添加:
删除:
LinkedList添加&删除举例:
List接口常用方法
LinkedList的特殊方法
3. Set接口
这里打印的结果是2,因为s1和s2是一样的数据,那么set是如何判断对象已经存在的呢?
引申:==
仅涉及内存地址比较;equals
计算哈希值和内容比较
比如:String word = “一”; String word1 = “一”; 这时word == word1 会返回false,因为这相当于是创建了一个word内存地址和一个word1的内存地址,两者内存地址不同。而word.equals(word1)会返回true,因为两者内容一致。
4. Map接口
通俗来讲就是CN -> 中华人民共和国, Ru ->俄罗斯联邦 ,其中CN,RU是键(key),中国和俄罗斯是值(value)
Map接口常用方法
5. 迭代器Iterator
迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器的内容。
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。
!我刚才提到,Map集合是无序的,无法通过for[i]进行遍历,所以我们才需要使用iterator或者增强for循环!
所以我们可以吧iterator理解成一个新型的for循环来帮助我们遍历无序集合的数据,同时iterator也提供了很多方法,我们以后会继续深入。
6. 泛型集合
通俗来讲,我们可以标记这个集合的元素类型,这样我们在对集合内对象进行处理时就不用每次都使用强转了,而且如果我们错误的处理一些数据,代码也是会提示我们是错误的需要修改。
7.总结
课后练习:
List基础与难度题-CSDN博客
尝试改写数组题目:题目:宠物医院管理系统业务需求及编程要求-CSDN博客