一、集合
1、集合类型主要有3种:list、set和Map.
2、集合接口分为:Collection和Map,list、set实现了Collection接口.他的一个类继承结构如下:
Collection<--List<--Vector
Collection<--List<--ArrayList
Collection<--List<--LinkedList
Collection<--Set<--HashSet
Collection<--Set<--HashSet<--LinkedHashSet
Collection<--Set<--SortedSet<--TreeSet
3、Iterator:迭代器,它是Java集合的顶层接口(不包括 map 系列的集合,Map接口 是 map 系列集合的顶层接口)
Iterable和Iterator的区别:
Iterable里面封装了 Iterator 接口。所以只要实现了只要实现了Iterable接口的类,就可以使用Iterator迭代器了。
Iterator :存在于 java.util 包中。核心的方法next(),hasnext(),remove()。
4、List:有序、可以有重复的集合
List 接口的三个典型实现:
①、List list1 = new ArrayList();
底层数据结构是数组,查询快,增删慢;线程不安全,效率高
②、List list2 = new Vector();
底层数据结构是数组,查询快,增删慢;线程安全,效率低,几乎已经淘汰了这个集合
③、List list3 = new LinkedList();
底层数据结构是链表,查询慢,增删快;线程不安全,效率高
5、Set:典型实现 HashSet()是一个无序,不可重复的集合
①、当向HashSet集合中存入一个元素时,HashSet会先调用该对象的hashCode()方法来得到该对象的hashCode值,然后根据hashCode值决定该对象在HashSet中的存储位置
②、如果 hashCode 值不同,直接把该元素存储到 hashCode() 指定的位置
③、如果 hashCode 值相同,那么会继续判断该元素和集合对象的 equals() 作比较
④、hashCode 相同,equals 为 true,则视为同一个对象,不保存在 hashSet()中
⑤、hashCode 相同,equals 为 false,则存储在之前对象同槽位的链表上,这非常麻烦,我们应该约束这种情况,即保证:如果两个对象通过 equals() 方法返回 true,这两个对象的 hashCode 值也应该相同。
----------------------------------------------------------------------------------------------------------------------有待更新
本文详细介绍了Java集合框架的基础概念,包括List、Set和Map三种主要集合类型的特点与应用场景。对比了ArrayList、Vector和LinkedList的不同,并解释了HashSet的工作原理及其内部元素的存储方式。
1497

被折叠的 条评论
为什么被折叠?



