1.collection
1.1概述
java集合是使得程序能够存储和操纵元素不固定的一组数据。所有java集合类都位于java.util包中
那么数组和java集合工具类的区别就是:
数组长度是固定的、 集合长度是不固定的
数组可以存放任意类型、 集合不能存放基本数据类型,只能存放对象的引用
注意:如果集合中存放基本类型,一定要将其“装箱”成对应的“基本类型包装类”.
1.2继承体系
以上肉麻可以看出java集合类有清晰的继承关系,有很多字接口和实现类。但是并不是所有子接口或者实现类都是最常用的
常用的子接口和实现类:
Collection——List——ArrayList类
Collection——List——LinkedList类
Collection——Set——HashSet类
Collection——Set——SortedSet接口——TreeSet类
1.3常用方法
1.4使用方式
1.5 注意Contains和remove
Contains(数据):判断集合中是否包含某个元素
Remove(数据):删除指定元素
两个方法底层都会自动调用该对象的equals方法,因为不管是判断是否包含还是删除都要先找到这个数据,而找到只能比较但是集合中保存的都是引用类型,所以比较只能使用equals方法
所以如果存储的是自定义类型,就要考虑equals方法的复写问题
2.Iterator
2.1概述
for与iterator对比
Iterator的好处在于可以使用相同的方式去遍历集合中的元素,而不用考虑集合类的内部实现
使用Irerator来遍历集合中元素,如果不再使用List转而书踢不过set来组织数据,则遍历元素的代码不用做任何修改
使用for来遍历,那所有遍历此集合的算法都应做相应调整,因为List游戏,Set无锡,结构不同,他们的访问算法也不一样
for循环需要下标
2.2常用方法
2.3使用方式
3.List
3.1概述
3.2 ArrayList
3.2.1常用方法
3.2.2遍历
3.3LinkedList
3.3.1基本使用和方法
和ArrayList操作一模一样
3.3.2底层实现
3.3.2.1 Node节点类
3.3.2.2 LinkedList类
3.3.2.3 add方法实现
3.3.2.4 Get方法实现
获取数据
Get方法 只是模拟了下标获取数据的方式,本质就是遍历,从头挨个去找 所以可以理解为并不是下标,只是确定了循环的次数
而ArrayList的get才是根据下标获取