一、数组
数组:固定长度、可存储基本数据类型,是保存一组对象最有效的方式
容器:可变长度、只存储引用数据类型
二、Iterator
迭代器,从集合中取元素的工具
hasNext(): 是否有下一个元素
next(): 返回迭代的下一个元素
remove():移除迭代器返回的最后一个元素
三、Collection
1、共性方法
add(Object): 添加一个元素;
addAll(Collection): 添加一个集合中的所有元素;
clear(): 清空集合;
remove(Object): 删除一个元素;
removeAll(Collection): 删除部分元素;
retainAll(Collection): 获取两个集合的交集;
isEmpty(): 是否为空;
contains(Object): 是否包含元素;
containsAll(Collection): 是否包含多个元素;
size(): 获取元素的数量;
toArray(): 获取元素的数字;
iterator(): 获取迭代器;
2、List
特点:有序可重复
特有方法:
add(int, Object): 在指定位置,插入元素;
addAll(int, Collection): 在指定位置,插入多个元素;
get(int): 获取指定位置的元素;
set(int, Object): 替换指定位置的元素;
remove(int): 删除指定位置的元素;
indexOf(Object): 获取元素的索引(正向);
lastIndexOf(Object): 获取元素的索引(反向);
subList(int, int): 获取子集合;
listIterator(): 获取list特有迭代器;
3、Set
特点:无序不重复
无特有方法
4、队列:Queue
特点:先进先出
LinkedList实现了Queue接口
add(Object); 插入元素,空间不足会抛异常;
offer(Object): 插入元素,优于add(Object);
element(): 获取元素,不移除队列头;
remove(): 获取元素,会移除队列头;
peek(): 获取元素,不移除队列头;如果队列为空,则返回 null;
poll(): 获取元素,会移除队列头;如果队列为空,则返回 null;
5、工具类:Collections
用于操作集合的工具类,其方法都是静态的
sort(List): 将集合排序(按自然顺序,升序)
max(Collection): 取最大元素(按自然顺序)
min(Collection): 取最小元素(按自然顺序)
......
四、Map
1、共性方法
put(Object, Object): 保存键值对;
get(Object): 获取键的值;
remove(Object): 删除一个键;
putAll(Map): 保存多个键值对;
clear(): 清空;
size(): 获取键值对的数量;
isEmpty(): 是否为空;
containsKey(Object): 是否包含键;
containsValue(Object): 是否包含值;
keySet(): 获取Map所有键 ;
values(): 获取Map所有值;
entrySet(): 获取Map所有映射关系 ;
2、遍历Map
Map map=new HashMap<>();
//方法一:entrySet()
//最常见、最可取
for(Map.Entry<String, Object> entry : map.entrySet()){
System.out.println("Key = " + entry.getKey());
System.out.println("Value = " + entry.getValue());
}
//方法二:keySet()、values()
//比方法一快10%
for (String key : map.keySet()) {
System.out.println("Key = " + key);
}
for (Object value : map.values()) {
System.out.println("Value = " + value);
}
//方法三:Iterator
//性能同方法二,可同时删除元素
//取键值对
Iterator<Entry<String, Object>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
System.out.println("Key = " + entry.getKey());
System.out.println("Value = " + entry.getValue());
}
//只取键
Iterator<String> itKey = map.keySet().iterator();
while (itKey.hasNext()) {
System.out.println("Key = " + itKey.next());
}
//只取值
Iterator<Object> itValue = map.values().iterator();
while (itValue.hasNext()) {
System.out.println("Value = " + itValue.next());
}
//方法四:键找值
//效率低(比方法一低20%~200%)
for (String key : map.keySet()) {
System.out.println("Key = " + key);
System.out.println("Value = " + map.get(key));
}