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之后,引入了更高效的并发集合类,所以这些同步方法已经没啥用了。
Java:Collections的更多相关文章
- Java基础知识强化之集合框架笔记69:Collections类之ArrayList存储自自定义对象并排序的案例
1. ArrayList存储自自定义对象并排序的案例: ArrayList存储自自定义对象,并使用Collections对ArrayList存储基本包装类的元素排序. 2. 代码实现: (1)Stud ...
- Java基础知识强化之集合框架笔记68:Collections类概述和成员方法(备注:Collection 和 Collections区别)
1. Collections类概述: 针对集合操作的工具类,都是静态方法. 2. Collection 和 Collections的区别: Collections是个java.util下的类,它包含 ...
- java.util.Collections.copy():列表List浅拷贝
今天同事问我怎样将一个列表(list1)拷贝到另一个列表(list2),然后修改新的列表(list2)不会影响到旧的列表(list1),想了一想,这是深拷贝啊. 可是,除了循环new还有别的办法吗,想 ...
- Java学习笔记33(集合框架七:Collections工具类)
数组有工具类,方面操作数组 集合也有工具类:Collections 常用方法示例: package demo; import java.util.ArrayList; import java.util ...
- Java:集合,Collections工具类用法
Collections工具类提供了大量针对Collection/Map的操作,总体可分为四类,都为静态(static)方法: 1. 排序操作(主要针对List接口相关) reverse(List li ...
- 集合-强大的集合工具类:java.util.Collections中未包含的集合工具
任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.Guava沿着这些路线提供了更多的工具方法:适用于所有集合的静态方法.这是Guava最流行和成熟 ...
- Java集合框架:Collections工具类
java.util.Collections工具类提供非常多实用的方法.使得程序员操作集合类的时候更加的方便easy,这些方法都是静态的. 整个Collections工具类源代码几乎相同有4000行.我 ...
- [Google Guava] 2.3-强大的集合工具类:java.util.Collections中未包含的集合工具
原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.G ...
- java:容器/集合(Map(HashMap,TreeMap)Collection和Collections,(Collection-value();)
*Map接口:采用是键值对的方式存放数据.无序 HashMap: *常见的实现类: *--HashMap:基于哈希表的 Map 接口的实现. *常用的构造方法: * HashMap()构造一个具有默认 ...
随机推荐
- ambari-hadoop集群管理web工具
https://baike.baidu.com/item/Ambari/19697889?fr=aladdin https://www.ibm.com/developerworks/cn/openso ...
- ant -design vue a-tree 树形控件
话不多说,先上代码. <a-tree v-if="this.treeData && this.treeData.length > 0" ref=&quo ...
- WTM多租户改造
首先简单说下多租户的几种实现方式 多租户(Multi-Tenant ),即多个租户共用一个实例,租户的数据既有隔离又有共享,说到底是要解决数据存储的问题. 常用的数据存储方式有三种. 方案一:独立数据 ...
- Azure AD Domain Service(一)将 Azure VM 实例添加到域服务里
一,引言 有网友提到实际项目中如何将 Azuer VM 实例加入到 Azure AD 域,那我们今天就带着整个问题开始今天的分析!首先我们得了解什么是 Azure AD 域服务,Azure AD 域服 ...
- 「NOI十联测」反函数
30pts 令(为1,)为-1: 暴力枚举每个点为起始点的路径,一条路径是合法的当且仅当路径权值和为0且路径上没有出现过负数. 将所有答案算出. 100pts 使用点分治. 要求知道经过重心root的 ...
- NSArray基本概念
1.NSArray的基本概念 什么是NSArray? NSArray是OC中的数组类,开发中建议尽量使用NSArray替代C语言中的数组 C语言中数组的弊端 int array[4] = {10, 8 ...
- C预备知识_001
程序由什么构成? 1.对数据的描述:在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式,其实这就是数据结构(data structure). 2.对操作的描述:即要求计算机就行操作的步骤,也 ...
- rpm与yum安装及管理程序
安装及管理程序 1.Linux应用程序基础 2.RPM软件包管理工具 3.yum源仓库创建 1.应用程序与系统命令的关系如图: 典型应用程序的目录结构如图: 常见的软件包封装类型如图: 2.RPM包 ...
- WebGPU 中的缓冲映射机制
1. 什么是缓冲映射 就不给定义了,直接简单的说,映射(Mapping)后的某块显存,就能被 CPU 访问. 三大图形 API(D3D12.Vulkan.Metal)的 Buffer(指显存)映射后, ...
- 静态分离 & rewrit 重写 & HTTPS
内容概要 资源分离 Nginx 的 Rewrite重写 HTTPS 内容详细 一.动静分离 1.在 nfs 中创建 NFS 挂载点 [root@nfs static]# mkdir /static [ ...