1.集合
替换对象数组
Student[] stus=new Student[20];
2.根据存储结构的不同
开发人员将集合分为
3类接口6种实现类
List ArrayList 数组结构
LinkedList 链表结构
Set HashSet 哈希结构
TreeSet 二叉树结构
Map HashMap
TreeMap
3.Collections
集合工具类
4.Collection
接口下有两个子接口List和Set
存储一组不唯一,无序的对象。
4.List接口特点
存储一组不唯一,有序的对象。
ArrayList: 动态数组结构
和数组存储结构相似,在一段连续的空间内存储数据。
下标
遍历(循环 迭代)
LinkedList:动态链表结构
在非连续的空间内存储数据。
频繁修改集合数据(插入或者删除)
注意:虽然我们在使用上add和remove,和arrayList没有任何使用的区别
但是底层实现代码是非常不同的。
数组就像为一排人身上编号,要找到第10人很容易,根据编号查找即可
但是插入和删除效率低,当插入某一个值的时候,后面的编号都要进行改变。
链表就像一排人手拉手一样,要找到第10人不容易,必须从第一个人依次往后数,
但是插入和删除效率高,当插入某一个值的时候,只要解开两个的手,将新的人的手拉上即可。
5.Set接口特点
存储一组唯一,无序的对象
6.Map接口特点
存储一组键值的对象
key-value
通过自定义的key得到相应的value
集合:存储数据个数不定;经常操作这些数据。
位于java.util包下
集合中必须存储对象
集合如何定义//使用多态方式
集合提供大量的方法完成对集合的增删改