List接口
- 他是一个元素存取有序的集合;
- 他是一个带索引的集合;
- 集合中可以存在重复的元素
- 常用方法
- add(E e) 向列表的尾部添加执行的元素
- add(int index, E e ) 向列表指定位置添加元素
- get(int index) 返回列表中指定位置的元素
- remove(int index) 移除表彰指定位置的元素
- remove(object o) 移除列表中第一次数显的指定元素
- set(int index, E e) 修改列表中指定位置的元素
- 创建ArrayList集合的方法
- List<元素类型> list = new ArrayList<>();
- 创建迭代器的方法
Iterator<元素类型> it = list.iterator;
- 使用迭代器对集合进行遍历
while(it.hasNext()){
System.out.println(it.next());
}
- ArrayList/LinkedList集合
区别:
1.ArrayList集合采用的是数组结构,具有增删慢、查找快的特点;
2.LinkedList集合采用链式存储结构,具有增删快,查找慢的特点,LinkedList集合提供了大量首尾操作的方法;
- LinkedList集合的常用方法
getFirst()、getLast()、addFirst()、addLast()、removeFirst()、removeLast()、pop()、push()、isEmpty()
Set接口
Set接口与List接口的最大区别是:Set接口不可以存储重复的元素,Set接口通过equals方法,来判断是否为重复元素。
HashSet集合不能保证迭代顺序和元素存储顺序相同,采用hashCode()与equals()两个方法来保证数据的唯一性。
LinkedSet集合,是链表和哈希表组合的一个数据结构,在HashSet集合的基础上,可以保证元素存取顺序的一致性。
Map接口
不能包含重复的key,可以包含重复的值
- HashMap和LinkedHashMap的区别
HashMap:存储数据采用hash表结构,不能保证存取数据的一致性。
LinkedHashMap:采用哈希表+链表的结构,可以保证存取数据的一致性。
- Map接口的常用方法
get(Object key)、put(key ,value)、remove(key)、getOrDefault(key,defaultValue)
keySet()方法可以返回map集合中key的Set集合,进一步通过Iterator对map的值进行遍历;
entrySet()方法返回Set<Map.Entry<K,V>>类型,因为返回的是Set集合可以对其使用Iterator方法进行遍历。
Map.Entry<K,V>的常用方法包括getKey()、getValue()。
- 可变参数
- Collentions集合工具类
常用方法:shuffle(List<?> list) 使用默认随机源对指定列表进行置换
sort(List list) 根据元素的自然顺序,对指定列表按照升序进行排序
- 注意:
在存入自定义类型的元素时,需要重写hashCode()和equals()方法。