Collections工具类常用方法?
请列举Java中java.util.Collections工具类的常用方法,包括排序、查找、同步、不可变集合等。分类说明其使用方式和注意事项。
回答
小字辈
排序和搜索:
- sort(List):自然排序
- sort(List, Comparator):指定排序
- binarySearch(List, key):二分查找(需要先排序)
- reverse(List):反转
- shuffle(List):随机打乱
- rotate(List, distance):旋转
最值操作:
- max(Collection)、min(Collection)
- max(Collection, Comparator)、min(Collection, Comparator)
同步包装(返回线程安全视图):
- synchronizedList(list)
- synchronizedMap(map)
- synchronizedSet(set) 注意:迭代时仍需外部同步
不可变集合(Java 9前):
- unmodifiableList(list)
- unmodifiableMap(map)
- singletonList(o)、singletonMap(k,v)
- emptyList()、emptyMap()
其他:
- frequency(Collection, Object):元素出现次数
- disjoint(Collection, Collection):是否不相交
- addAll(Collection, T...):批量添加
- replaceAll(List, oldVal, newVal)
注意:Collections.sort()对ArrayList性能好(Timsort),对LinkedList性能差(需复制到数组排序)。