Java:Collections
说明
工具类,提供了许多静态方法,用于操作集合。
模块:java.util.Collections
方法:全是static方法,使用时直接Collections.xxx( ... )
返回值类型 |
方法 |
说明 |
boolean | addAll(Collection< ? super T >c, T... elements) | 把第二个参数中的所有元素添加到c中 |
Queue<T> | asLifoQueue(Deque <T> deque) | 返回deque对应的Queue |
int | binarySearch(List<? extends Comparable<? super T>>list,T key) | 用二进制检索算法搜索list中key对应的对象 |
Collection<E> | checkedCollection(Collection<E> c, Class<E> type) | 返回指定Collection的dynamically typesafe view |
List<E> | checkedList(List<E>list , Class<E> type) | |
checkedMap(...) | ||
checked...(...) | ||
void | copy(List<? super T> dest , List<? extends T>src) | 复制dest中的所有元素到src中 |
boolean | disjoint(Collection<?>c1 , Collection<?>c2) | 当两个集合没有共同元素时返回true |
Enumeration<T> Iterator<T> List<T> ListIterator<T> Map<K,V> NavigableMap<K,V> NavigableSet<E> Set<T> SortedMap<K,V> SortedSet<E> |
emptyEnumeration() emptyIterator() emptyList() emptyListIterator() emptyMap() emptyNavigableMap() emptyNavigableSet() emptySet() emptySortedMap() emptySortedSet() |
返回一个空的,指定类型的集合(常用于初始化) |
Enumeration<T> |
enumeration(Collection<T> c) |
void | fill(List<? super T>list , T obj) | 用obj代替list中的所有元素 |
int | frequency(Collection<?>c , Object o) | 返回o在集合c中出现的次数 |
int | indexOfSubList(List<?>source,List<?>target) | 返回target在source中第一次出现的位置,失败返回-1 |
int | lastIndexOfSubList(List<?>source,List<?>target) | 返回target在source中最后一次出现的位置,失败返回-1 |
ArrayList<T> | list(Enumeration<T> e) | 返回一个包含e中所有元素(按照它们的顺序)的arraylist |
T | max(Collection<? extends T> coll) | 返回集合中的最大元素(自然顺序) |
T | max(Collection<? extends T>coll,Coparator<? super T>comp) | 返回集合中的最大元素(由Comparator排序) |
T | min(Collection<? extends T> coll) | 返回集合中的最小元素(自然顺序) |
T | min(Collection<? extends T>coll,Coparator<? super T>comp) | 返回集合中的最小元素(由Comparator排序) |
List<T> | nCopies(int n , T o) | 返回一个由n个元素o组成的List |
Set<E> | newSetFromMap(Map<E,Boolean>map) | 返回map对应的Set |
boolean | replaceAll(List<T>list,T oldVal,T newVal) | 用newVal替换list中全部oldVal |
void | reverse(List<?>list) | 反转list中的元素 |
Comparator<T> | reverseOrder() | 返回反转顺序的Compartor |
Comparator<T> | reverseOrder(Comparator<T> cmp) | |
void | rotate(List<?>list,int distance) | 所有元素后移若干单位(末尾在开始补充) |
void | shuffle(List<?>list) | 把list中的元素重新排序 |
void | shuffle(List<?>list,Random rnd) | 使用指定随机源把list中的元素重新排序 |
Set<T> | singleton(T o) | 返回一个只包含指定元素o的Set |
List<T> | singletonList(T o) | 返回一个只包含指定元素o的List |
Map<K,V> | singletonMap(K key,V value) | 返回一个只包含指定K-V的Map |
void | sort(List<T>list) | 对list进行排序(自然顺序) |
void | sort(List<T>list , Comparator<? super T>c) | 对list进行排序(由Comparator指定顺序) |
void | swap(List<?>list , int i , int j) | 交换list中索引为i与j的元素 |
Collection<T> List<T> Map<K,V> NavigableMap<T> NavigableSet<T> Set<T> SortedMap<K,V> SortedSet<T> |
synchronizedCollection(Collection<T> c) synchronizedList(List<T> list) synchronizedMap(Map <K,V> m) synchronizedNavigableMap(NavigableMap<T> m) synchronizedNavigableSet(NavigableSet<T> s) synchronizedSet(Set<T> s) synchronizedSortedMap(SortedMap<K,V> m) synchronizedSortedSet(SortedSet<T> s) |
返回集合c对应的同步(线程安全)集合 返回list对应的同步(线程安全)List 返回m对应的同步(线程安全)Map 返回m对应的同步(线程安全)NavigableMap 返回s对应的同步(线程安全)NavigableSet 返回s对应的同步(线程安全)Set 返回m对应的同步(线程安全)SortedMap 返回s对应的同步(线程安全)SortedSet |
Collection<T> List<T> Map<K,V> NavigableMap<T> NavigableSet<T> Set<T> SortedMap<K,V> SortedSet<T> |
unmodifiableCollection(Collection<T> c) unmodifiableList(List<T> list) unmodifiableMap(Map <K,V> m) unmodifiableNavigableMap(NavigableMap<T> m) unmodifiableNavigableSet(NavigableSet<T> s) unmodifiableSet(Set<T> s) unmodifiableSortedMap(SortedMap<K,V> m) unmodifiableSortedSet(SortedSet<T> s) |
返回这些集合类型的不可变集合 |
部分方法说明
1、addAll( Collection<? super T> c , T... elements ):往集合中添加元素
给集合c添加若干元素,由于第一个参数是Collection,所以我们可以传入List、Set等集合。
2、emptyXXX( ... ):创建空集合
要注意返回的空集合是不可变集合,无法向其中增删元素。
此外,也可以用各集合接口的of( T... )方法创建空集合,例如,以下两种创建空List的方法等价:
List <String> list1 = List.of();
List <String> list2 = Collections.emptyList();
3、singletonXXX( ... ):创建单元素集合
返回的集合也是不可变集合。
也可以用of( ... )实现:
List <String> list1 = List.of("apple");
List <String> list2 = Collections.singletonList("apple");
实际上,用List.of( T... )更方便,因为它可以创建任意个元素的List:
List<String> list1 = List.of(); // empty list List<String> list2 = List.of("apple"); // 1 element List<String> list3 = List.of("apple", "pear"); // 2 elements List<String> list4 = List.of("apple", "pear", "orange"); // 3 elements
4、unmodifiableXXX( ... ):返回不可变集合
对原集合的修改会导致与之对应的不可变集合的改变,所以最好返回不可变集合之后就丢弃原集合。
5、synchronizedXXX( ... ):返回线程安全集合
由于JDK5之后,引入了更高效的并发集合类,所以这些同步方法已经没啥用了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性