虚线框表示接口
实线框表示实现类
Java集合框架共有三大类接口:List、Set、Map
List接口存储一组不唯一,有序(插入顺序)的对象
ArrayList类实现了长度可变的数组,在内存中分配连续的空间。遍历元素的随机访问元素的效率比较高
LinkedList类采用链表存储方式。插入、删除元素时效率比较高
定义一个ArrayList集合:List list = new ArrayList();
List list = new ArrayList(); //定义一个ArrayList集合类
list.add(1); //将元素添加到集合中
list.add(1, 2); //将元素 2 插入到集合的 下标为 1 的位置
list.get(1); //返回集合中索引为 1 的元素
list.indexOf(2); //返回元素 2 在集合中出现的索引
list.set(1, 3); //将下标为 1 的元素替换为 3
list.remove(1); //删除并返回 下标为 1 的元素
list.isEmpty(); // 判断 list集合是否为空 返回的是boolean类型
list.contains(3); // 判断list集合中是否包含 3 返回的是boolean类型
定义一个LinkedList : LinkedList list = new LinkedList();
LinkedList list = new LinkedList(); //定义一个 LinkedList集合
list.addFirst(1); //将给定元素插入当前集合头部
list.addLast(5); //将给定元素插入当前集合尾部
list.getFirst(); //获取当前集合的第一个元素
list.getLast(); //获取当前集合的最后一个元素
list.removeFirst(); //移除并返回当前集合的第一个元素
list.removeLast(); //移除并返回当前集合的最后一个元素
set接口存储一组唯一,无序的对象
HashSet 是Set接口常用的实现类
HashSet允许集合元素值为null
操作数据的方法与List类似,Set接口不存在get()方法
定义一个Set集合 : Set set = new HashSet();
HashMap是Map接口最常见的实现类
存储一组成对的键 - 值对象,提供key(键)到 value(值)的映射,通过key来索引
key不允许重复
value允许重复
添加的对象将转换为Object类型
定义一个HashMap 集合 : HashMap map = new HashMap();
Map map = new HashMap(); //定义一个HashMap 集合
map.put(1, "编号"); //将互相关联的一个关键字(key)与一个值(value)放入该集合
map.remove(1); //将 key值为 1的元素移除
map.get(1); //获取与关键字key相关的值。如果该键不关联任何非null值,则返回null
map.containsKey(1); //判断集合中是否存在关键字key
map.containsValue("11"); //判断集合中是否存在值value
map.isEmpty(); //判断集合中是否存在元素
map.clear(); //清楚集合中的所有元素
map.size(); //返回集合中元素的数量
Set set1 =map.keySet(); //获取所有键key的集合
Collection set2 =map.values(); //获取所有值value的集合
keySet()方法获取键的集合
values()方法获取值得集合
Map map = new HashMap(); //定义一个HashMap 集合
//循环给map集合赋值
for(int i = 0;i<=5;i++){
map.put(i, i*5);
}
//遍历map集合
Set sets = map.keySet();
//foreach循环
for(Object o : sets){
System.out.println(o +" "+ map.get(o));
}
打印结果为:
0 0
1 5
2 10
3 15
4 20
5 25
Collection接口是最基本的容器接口,继承至Iterable接口,允许元素重复不唯一,可以无序
Collection和Collections不同,前者是集合的接口,后者是集合的操作类
Collections操作类提供的静态方法
sort():排序
binarySearch():查找
fill():替换