Collections工具类
Posted crabdumplings
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Collections工具类相关的知识,希望对你有一定的参考价值。
Collections工具类
- Collections是一个操作Set、List和Map等集合的工具类(类似于Arrays操作数组的工具类)
- 提供了一系列的静态方法(static)
排序操作的相关方法
-
reverse(List)
反转List中元素的顺序
List list = new ArrayList(); list.add(-92); list.add(123); list.add(963); list.add(100); list.add(-8); list.add(20); System.out.println(list);//[-92, 123, 963, 100, -8, 20] Collections.reverse(list); System.out.println(list);//[20, -8, 100, 963, 123, -92]
-
shuffle(List)
对List集合元素进行随机排序
Collections.shuffle(list); System.out.println(list);//[963, -8, 123, 100, -92, 20]
-
sort(List)
根据元素的自然排序对指定的List集合元素按升序排序
Collections.sort(list); System.out.println(list);//[-92, -8, 20, 100, 123, 963]
-
sort(List , Comparator)
根据指定的Comparator产生的顺序对List集合元素进行排序
-
swap(List , int i , int j)
将指定的List集合中的i处元素和j处元素惊醒交换
//交换前原始的List为[-92, 123, 963, 100, -8, 20] Collections.swap(list,1,5); System.out.println(list);//[-92, 20, 963, 100, -8, 123]
查找、替换操作相关的方法
-
max(Collection)
根据元素的自然顺序,返回给定集合中最大的元素
System.out.println(Collections.max(list));//963
-
max(Collection , Comparator)
根据Comparator指定的顺序,返回给定集合中最大的元素
-
min(Collection)
根据元素的自然顺序,返回给定集合中最小的元素
-
min(Collection , Comparator)
根据Comparator指定的顺序,返回给定集合中最小的元素
-
frequency(Collection , Object)
返回指定集合中指定元素出现的次数
System.out.println(Collections.frequency(list,-8));//1
-
copy(List dest , List src)
将src中的内容复制到dest中
其中要求dest中要有src复制的位置(假如src有3个元素,这时候要求dest也要有三个位置可以存放src的三个元素)
不可以直接复制,会报错。
List src = new ArrayList(); src.add(-92); src.add(123); src.add(963); System.out.println("src:" + src); List dest = Arrays.asList(new Object[src.size()]); System.out.println(dest); Collections.copy(dest , src); System.out.println("dest:" + dest);
-
replaceAll(List list , Object oldjVal , Object newVal)
使用新值替换List对象中的旧值
同步控制
Collections类中提供了多个synchronizedXxx()方法,该方法可以将指定集合包装成线程同步集合,从而解决多线程并发访问集合时的线程安全问题
List list = new ArrayList();
list.add(-92);
list.add(123);
list.add(963);
List list1 = Collections.synchronizedList(list);//list1即为线程安全的
以上是关于Collections工具类的主要内容,如果未能解决你的问题,请参考以下文章
Java源码分析集合框架-Collections工具类-Arrays工具类