一:概述
容器API
Collection接口
Iterstor接口
Set接口
Comparable接口
List接口
Map接口
why:如果不知道程序运行需要多少对象,或者需要更加复杂的方式储存对象,可以使用java集合框架
二:java集合框架包含的内容
java集合框架提供了一套性能优良的使用方便的接口和类,他们位于java.util包里
Collection接口:
子接口List接口:
实现类ArrayList
实现类LinkedList
子接口Set接口
实现类HashSet
实现类TreeSet
Map接口:
实现类HashMap
实现类TreeMap
三:Clllection接口的常用方法
集合作为容器的常用功能:增,删,改,查
不一定全有
集合的基本操作:增加,删除,判断,取出
特点:
1可以存放不同的类型的数据,而数组只能存放固定类型的数据
2当使用arraylist的时候,初始化长度为10,长度不够自动扩容1.5倍
API方法:
添加数据的方法
add:要求传入的对象为Object对象,当写入基本数据类型的时候会自动装箱
addAll:添加另一个集合元素到此集合
删除数据的方法
clear:只是清空集合的元素,但是集合对象没有被回收
remove:删除指定的元素
removeAll:删除集合元素
查询数据的方法
contain:判断集合中是否包含指定的元素值
containAll:判断此集合是否包含另一个集合
isEmpty:判断集合是否为空
retainAll:若集合拥有另一个集合的所有元素返回为true,否则为false
size:返回当前集合的大小
集合转数组的方法
toArray:将集合转为数组
例子:
Collection collection=new ArrayList();
collection.add(1);//增加数据
collection.add(1.23);
colection.add("String");
((ArrayList) collection).add(0,"wensheng")//在0位置加入元素
collection.addAll(collection1);//将集合1加入该集合里
......
四:List和Set接口
Collection接口储存一组不唯一,无序的对象
List接口储存一组不唯一,有序的对象
Set接口储存一组唯一,无序的对象
Map接口储存一组键值对象,提供key到value的映射
五:List接口的实现
特点:
有序,不唯一
ArrayList实现了一种长度可变的数组,在内存分配连续的空间
优点:遍历元素和访问元素的效率高
缺点:添加删除需要大量的移动元素,效率低,按内容查询的效率低
LinkedList采用链表储存 的方式
优点:插入,删除元素时效率高
缺点:遍历,访问元素效率低
API特有方法
list.set(0,"wensheng")//修改特定下标加元素
list.get(11);//获取特定下标的元素(遍历可以使用)
list.add(11,"wensheng");//指定下标添加元素