Java集合框架概述
集合的概述
集合是用来存储引用类型数据的容器


集合的使用场景


Java 集合可分为 Collection 和 Map 两种体系





Collection接口方法


1、添加
- add(Object obj)
- addAll(Collection coll)
- **2、获取有效元素的个数
- int size(),获取的是元素的个数,而不是底层数据的长度**
3、清空集合 - void clear()
4、是否是空集合 - boolean isEmpty()
5、是否包含某个元素 - boolean contains(Object obj):是通过元素的equals方法来判断是否是同一个对象
- boolean containsAll(Collection c):也是调用元素的equals方法来比较的。拿两个集合的元素挨个比较。
6、删除 - boolean remove(Object obj) :通过元素的equals方法判断是否是要删除的那个元素。只会删除找到的第一个元素
- boolean removeAll(Collection coll):取当前集合的差集
7、取两个集合的交集 - boolean retainAll(Collection c):把交集的结果存在当前集合中,不影响c
8、集合是否相等 - boolean equals(Object obj)
9、转成对象数组 - Object[] toArray()
10、获取集合对象的哈希值 - hashCode()
11、遍历 - iterator():返回迭代器对象,用于集合遍历

Iterator迭代器接口
Iterator概述

Iterator接口的方法



集合的遍历操作




迭代的错误方式

使用 foreach 循环遍历集合元素




Collection子接口之一:List接口
List接口概述


List接口方法

List实现类之一:ArrayList
ArrayList源码分析


ArrayList三种遍历的方式
List实现类之二:LinkedList


面试题

LinkedList源码分析



List 实现类之三:Vector



Collection子接口之二:Set接口
Set 接口概述
Set接口中没有额外定义新的方法,使用的都是CoLLection中声明过的方法。








Set实现类之一:HashSet


Set实现类之二:LinkedHashSetSet



Set实现类之三:TreeSet
自然排序






定制排序








练习:在List内 去除重复数字值,要求尽量简单

【面试题】

因为set删除是根据p1的哈希值找到他,再删除的,由于p1在删除之前里面的数据发生了改变,所以p1的哈希值也改变了,set删除的是之前的p1,而改过里面值的p1没有被删除。所以得到小面的结果。



本文详细解读Java集合框架,包括Collection与Map的区别、常用接口方法如List(List接口及ArrayList分析),Set接口(HashSet、LinkedHashSet、TreeSet)和遍历技巧。重点讲解了遍历错误与正确方式,并通过实例演示如何在List中去除重复数字。面试题部分探讨了Set删除元素的原理。
391

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



