Java集合
List
有序可重复,可以通过下标操作元素
实现类
ArrayList:数组实现,线程不安全;查询慢,修改快
LinkedList:链表实现,线程不安全;查询快,修改慢
Vector:数组实现,线程安全
Stack:Vector的子类,提供堆栈操作,先进后出;push():尾部添加;pop():尾部移除;peek():获取元素
常用方法
get(int index) ; //取得指定下标元素 set(int index, E elem); //设置/修改指定下标元素 add(E elem); 添加元素 addAll(Collection c); //添加一个集合 contains(Object lbj); //是否包含某元素 remove(Object obj); //移除元素 removeFirst(); //移除第一个元素 size(); //元素个数 toArray(); //转成数组 isEmpty(); //是否是空集合
Set
不可重复
实现类
HashSet:无序。通过hashCode和equals判断元素是否重复;新元素的hashCode值不存在,直接存储;如果相同再根据equals方法判断是否存储
TreeSet:有序,是自然顺序。通过Compareable接口的compareableTo方法判断是否是重复元素
常用方法
和List接口的实现类方法大致一致,没有get()、set()、removeFirst()等方法
Map
键不可重复,值可以重复
实现类
HashMap:键可以为空(null);无序;线程不安全
LinkHashMap:和HashMap的区别是有序的
HashTable:键和值都不能为空(null);线程安全
常用方法
put(key, value); //添加元素 get(key); //获取key对应的value keySet(); //获取所有键 values(); //获取所有值 entrySet(); //获取所有键值对 remove(key); //删除键,对应的值也删除 size(); //获取个数 containsKey(key) //是否包含key containsValue(); //是否包含值