使用时期:如果不知道程序运行时会需要多少对象,或需要更复杂的存储方式存储对象--可以使用 java集合框架
java集合框架
Collection:存放的是单一值
api方法:
特点:
1.可以存放不同类型的数据,而数组只能存放固定类型的数据
2.当使用arrylist类型的时候初始化是10,当长度不够的时候会进行长度扩容
增加: add:要求必须传入的对象是Object对象,因此当写入基本数据类型的时候包含了自动拆箱和自动装箱的过程,只不过不可见(Object父类)
Collection collection = new Arraylist();
collection.add();
addAll:添加另一个集合的元素到此集合中
删除: clear:只是清空集合中的元素,但此集合并没有被回收
查询: contains:判断集合中是否包含指定的元素值
containsAll:判断此集合中是否包含另一个集合
isEmpty:判断集合是否等于空
remove(返回布尔类型):删除指定元素
retainAll:若集合中拥有另一个集合的所有元素返回true,否则返回false
size:返回当前集合的大小
toArrary:将集合转换为数组 //集合转数组的操作
注:如果不知道返回类型可以加上.var+Enter,系统会自动补全
List与Set
collection接口存储一组不唯一,无序的对象
List接口存储一组不唯一,有序的对象
Set接口存储一组唯一,有序的对象
Map接口存储一组键值对象,提供key和value的映射
List
List list = new ArraryList();
list.get(); //获取指定位置的参数
list.indexOf //获取指定元素的下标
list.lastindexOf //获取最后的指定元素的下标
list.set(0," "); //指定位置插入元素
list.subList(0,2); //截取
ArraryList实现了长度可变的数组,在内存中分配连续空间
优点:遍历元素和随机访问元素效率比较高
缺点:添加和删除元素需要大量移动元素效率低,按照内容查询效率低
LinkedList采用链表存储方式
优点:插入删除效率比较高
缺点:遍历和随机访问元素效率低下