容器

容器

什么是容器? 容器也叫集合框架,可以在其中放置对象或基本类
型数据。数组就是容器的一种。

容器简单的结构体系:
容器
容器中的元素类型都为引用类型,不能放置原生数据类型(使用装箱即可),使用泛 型保留类型。

Collection 接口

Collection 表示一组对象,它是集中,收集的意思,就是把一些数据收集起来,Collection 接口的两个子接口:
Set 中的数据没有顺序,不可重复
List 中的数据有顺序,可重复
容器

泛型<>

为什么需要泛型?
JDK1.4 以前类型不明确:
装入集合的类型都被当作 Object 对待,从而失去自己的实际类型。
从集合中取出时往往需要转型,效率低,容易产生错误。

泛型的好处:
增强程序的可读性和稳定性。

迭代器 Iterator 接口

Iterator 对象称作迭代器,用以方便的实现对容 器内元素的遍历操作。
使用迭代器时,分三步走策略:
第一步:获取对象
第二步:判断是否存在下一个
第三步:获取元素

容器

List和ArrayList

ArrayList 是 List 的子类。
容器
List集合遍历
1)普通for循环方式
2)增强for循环方式
3)迭代器

LinkedList与Vector

LinkedList 是一种可以在任何位置进行高效地插入和删除操作的有序序列。
Vector(向量)与 ArrayList 底层一致,就是多了线程安全而已。
LinkedList:底层用双向链表实现的 List。特点:查询效率低,增删效率高,线程不安全。
ArrayList:底层用数组实现的 List。特点:查询效率高,增删效率低,线程不安全。
Vector:底层用数组实现的 List,特点:线程安全。
如何选用?
线程安全用 Vector。
线程不安全,查找较多用 ArrayList。增加或删除元素较多用 LinkedList

Set

Set 接口中的元素无序不可重复:不包含重复元素,最多包含一个 null,元素没有顺序 ,相同的元素不会添加

Hashset

HashSet 是 Set 接口的一个子类,主要的特点是:里面不能存放重复元素,而且采用散 列的存储方法,所以没有顺序。这里所说的没有顺序是指:元素插入的顺序与输出的顺序不 一致。 使用重写 equals 和 hashcode 来实现自定义的类型的去重。