List
存放的数据可以重复,并且有顺序
ArrayList
底层是Object[]数组
增删很慢,查询很快
初始容量为10
方法 | 返回值 | 描述 |
---|---|---|
add(Object o) | boolean | 将指定的元素添加 |
addAll(Collection c) | boolean | 按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部 |
clear() | void | 清除所有元素 |
get(int index) | Object | 返回此列表中指定位置上的元素 |
isEmpty() | boolean | 如果不包含任何元素,则返回 true。 |
remove(int index) | Object | 将指定的元素删除,并返回删除的元素 |
remove(Object object) | boolean | 将指定的元素删除,并返回boolean |
set(int index,Object o) | Object | 用指定的元素替代此列表中指定位置上的元素,并返回原来的元素 |
size() | int | 返回此列表中的元素数 |
toArray() | Object[] | 按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组 |
遍历
1.fori
2.foreach
for (var a : aList) {
System.out.println(a);
}
3.lambda
aList.forEach(o->{
System.out.println(o);
});
LinkedList
底层是链表
增删很快,查询很慢
所有的方法同ArrayList
Set
HashSet
底层是哈希表
存放数据无序,不可重复
HashSet():初始容量为16,加载因子是0.75
加载因子是数组的长度的百分比;16*0.75 = 12;
意思就是数组中的桶数达到12个时数组就要扩容;(复制),扩容到原来的2倍;
没有下标,不能使用remove(int index)方法。
没有修改方法,要修改的话先删除再添加。
没有获取方法
其他方法和ArrayList相同
方法 | 返回值 | 描述 |
---|---|---|
contains(Object o) | boolean | 如果此 set 包含指定元素,则返回 true |
remove(Object object) | boolean | 将指定的元素删除,并返回boolean |
TreeSet
底层是二叉树
存放数据不可重复,但是有序(对于实现Comparable、Comparator接口)
方法和HashSet相同
Collections工具类
方法 | 返回值 | 描述 |
---|---|---|
sort(List list) | void | 根据元素的自然顺序 对指定列表按升序进行排序 |
Map
双列型,存放数据无序,key不可以重复,value可以重复
HashMap
底层是哈希表
HashMap():初始容量为16,默认加载因子是0.75
方法 | 返回值 | 描述 |
---|---|---|
get(Object key) | V | 返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null |
put(K key , V value) | V | 在此映射中关联指定值与指定键。与 key 关联的旧值;如果 key 没有任何映射关系,则返回 null。(返回 null 还可能表示该映射之前将 null 与 key 关联。) |
remove(Object key) | V | 从此映射中移除指定键的映射关系(如果存在)。 |
replace(K key , V value) | V | 在指定的键已经存在并且有与之相关的映射值时才会将指定的键映射到指定的值。在指定的键不存在时,方法会return回来一个null |
修改方法通过添加方法实现put( ),jdk8后可以使用replace( )。
TreeMap
底层是二叉树,可以根据key进行排序,存放数据不可重复,但是有序(对于实现Comparable、Comparator接口)
方法 | 返回值 | 描述 |
---|---|---|
containsKey(Object key) | boolean | 如果此映射包含指定键的映射关系,则返回true。 |
containsValue(Object value) | boolean | 如果此映射为指定值映射一个或多个键,则返回 true。 |