集合
Java基础
集合 : 存储多个对象
Collection:元素是Object
常用方法:
add(Object) 把元素添加到集合中
addAll(Collection c):把c集合中的所有元素添加到集合中
clear():清空集合
contains(Object o):判断o元素在集合中是否存在
remove(Object o):从集合中删除元素o
size():返回集合的长度
toArray():将集合转化为数组
遍历
1.迭代器遍历 Collection 可以通过迭代器,删除集合中的元素
2.for-each Collection JDK5
3.forEach() 方法 需要实现java.util.function.Consumer接口 JDK8
List: 元素按顺序存储(下标) 元素可以重复
常用方法:
add(int pos, Object o):将元素插入到指定位置
remove(int pos):删除指定位置的元素
get(int pos):获得指定位置的元素
indexOf(Object o):获得o元素的首下标
lastIndexOf(Object o):获得o元素的尾下标
set(int pos,Object o):将元素o设置到pos位置,覆盖原有的元素
subList(int start,int end):获得某段位置的子集合
遍历:
1.下标遍历 List
2.迭代器遍历 Collection 可以通过迭代器,删除集合中的元素
3.for-each Collection JDK5
4.forEach() 方法 需要实现java.util.function.Consumer接口
实现类:
1.ArrayList 数组实现 查询快 增删慢 线程不安全 并发效率高 JDK1.2
2.Vector 数组实现 线程安全 并发效率低 JDK1.0
3.LinkedList 链表实现 查询慢 增删快
排序:
Collections.sort(List) : 要求集合中的元素实现Comparable接口
Collections.sort(List,Comparator):Comparator比较器, 实现排序逻辑 集合中的元素不需要实现Comparable接口
list.sort(Comparator):直接对list调用sort方法排序,只能传入Comparator JDK8
Set:元素无顺序 元素内容不可重复
常用方法:等同于Collection接口
遍历:
1.迭代器遍历 Collection 可以通过迭代器,删除集合中的元素
2.for-each Collection JDK5
3.forEach() 方法 需要实现java.util.function.Consumer接口 JDK8
实现类:
1. HashSet : 保证内容重复对象只有一个
1)覆盖hashCode()方法,保证相同对象返回相同的int , 尽可能保证不同对象返回不同的int
2)覆盖equals()方法,保证相同对象返回true
2. LinkedHashSet HashSet的子类, 维护元素添加到Set中的顺序
3. TreeSet SortedSet(Set的子接口)的实现类 自动实现对元素的排序 依照排序规则判断重复对象
Queue:队列 FIFO
常用方法:
add() : 添加元素
offer(): 添加元素 优先使用
remove():删除元素
poll():删除元素 优先使用
element():获取队列的头元素
peek():获取队列的头元素 优先使用
实现类:
LinkedList ConcurrentLinkedQueue
Map : 元素是 key-value key无顺序,不可重复 value 可重复
常用方法:
get(Object key) :通过key查找对应的value
put(Object key,Object value):将key-value添加到Map中 如果key已存在,新的value覆盖旧的value
remove(Object key):删除key所对应的key-value对
size():长度
containsKey(Object key): 判断key是否存在
containsValue(Object value): 判断value是否存在
遍历:
1.keySet():Set 遍历Map中所有的key
2.values():Collection 遍历Map中所有的value
3.entrySet():Set Set中的元素为Map.Entry对象. 代表了一个键值对 遍历Map中的所有的键值对
4.forEach(): 实现BiConsumer接口 直接遍历Map JDk8
实现类:
HashMap : 依靠哈希算法保证key不重复 1.2 线程不安全 并发效率高 允许用null作为key或value
Hashtable: 1.0 线程安全 并发效率低 不允许用null作为key或value
LinkedHashMap : HashMap的子类 维护元素添加到集合中的顺序
TreeMap SortedMap(Map的子接口)的实现类 自动对key排序
Properties Hashtable的子类 key和value都是String 通常用于配置文件的处理