集合
List
List 接口存储一组不唯一,有序的对象
-
ArrayList
ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高
-
LinkedList
Vector线上安全 ArrayList线上不安全 LinkedList采用链表存储方式。插入、删除元素时效率比较高
list.remove(int index)//移除,元素为空报异常
list.pop()//从此列表表示的堆栈中删除(头部)一个元素,元素为空报异常
list.poll()//检索并删除此列表的头(第一个元素),元素为空返回null
list.polllast() //检索并删除此列表的最后一个元素,如果此列表为空,则返回 null
list.get(int index) 返回此列表中指定位置的元素
list.peek()//检索但不删除此列表的头(第一个元素)
Set
Set是无序不可重复的list是有序可以重复的
Set无序指的是和插入的顺序无关,由Comparator对内容进行一个自然排序
-
HashSet
Set集合不允许有重复元素,当放入的元素在集合中已存在时,旧的元素被覆盖 HashSet是以无序(散列)的形式保存的
-
treeSet
TreeSet是以有序的形式保存的,无论放入顺序如何,集合都会排序后存放, 放入的元素要实现接口Comparable
Map
-
HashMap--------无序
map.keyset()//获取map中的所有键 map.values()//获取map中的所有值 map.entrySet()//获取map中的键值对
-
LinkHashMap//有序map
-
Iterator
hasNext()-------如果迭代还有元素,返回true next() ---------返回迭代的下一个元素 remove()--------删除迭代的元素
-
数组和集合的转换
数组转集合:*Arrays.asList()* 将数组变成集合,集合只能读,不能写 集合转数组:*list.toArray()
四种Map的区别
1. HashMap---------------------------- 线程不安全 、无序 加载因子0.75 初始化长度16
2. LinkedHashMap---------------------- 线程不安全 、有序
3. Hashtableb 不允许 null -------------线程安全 、同步方法、性能不高、无序
4. 在多线程时用 ConcurrentHashMap -------线程安全,性能高、无序