Java知识点–操作集合的工具类Collections
1.排序
方法 | 功能 |
---|---|
void reverse(List list) | 反转 |
void shuffle(List list) | 随机打乱 |
void sort(List list) | 自然排序(升序) |
void sort(List list,Comparator c) | 自定义排序 |
void swap(List list,int i,int j) | i索引处的值与j索引处的值交换 |
void rotate(List list,int distance) | 当distance大于0,将list集合后distance个元素移到前面,当distance小于0,则将list集合前distance个元素移到后面,不会改变集合的长度 |
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class test01 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(2);
list.add(-5);
list.add(3);
list.add(0);
System.out.println(list);
Collections.reverse(list);
System.out.println(list);
Collections.shuffle(list);
System.out.println(list);
Collections.sort(list);
System.out.println(list);
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
//具体数字不进行具体比较了,这样的结果和reverse相似
return -1;
}
});
System.out.println(list);
Collections.swap(list, 0, 2);
System.out.println(list);
Collections.rotate(list, 3);
System.out.println(list);
}
}
2.查找,替换
方法 | 功能 |
---|---|
int binarySearch(List list,Object key) | 类似二分法查找,返回索引 |
Object max(Collection coll) | 自然排序,返回集合中的最大的元素 |
Object max(Collection coll,Comparator comp) | 根据自定义的排序,返回最大值 |
Object min(Collection coll) | 自然排序,返回集合中最小的元素 |
Object min(Collection coll,Comparator comp) | 根据自定义排序,返回最小值 |
void fill(List list,Object obj) | 用指定元素替换集合中的所有元素 |
int frequency(Collection c,Object o) | 用于返回指定元素的出现次数 |
int indexOfSubList(List source,List target) | 返回List对象第一次出现在父List中的索引,如果没有出现,返回-1 |
int lastIndexOfSubList(List source,List target) | 返回List对象在父List对象中最后一次出现位置的索引,如果没有出现,返回-1 |
boolean replaceAll(List list,Object oldVal,Object newVal) | 将List中的所有oldVal值替换成newVal |
3.同步控制
Collections提供了多个synchronizedXxx()方法,可以将指定集合包装成同步集合
var c=Collections.synchronizedCollection(new ArrayList());
4.设置不可变集合
方法 | 功能 |
---|---|
emptyXxx() | 返回一个空的,不可变的集合集合对象 |
singletonXxx() | 返回一个只包含指定对象的,不可变的集合对象 |
ummodifiableXxx() | 返回指定集合对象的不可变视图 |
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class test04 {
public static void main(String[] args) {
List<Object> list = Collections.emptyList();
Set<String> singleton = Collections.singleton("HelloWorld");
var source=new HashMap<String, Integer>();
source.put("语文", 80);
source.put("数学", 82);
Map<String, Integer> unmodifiableMap = Collections.unmodifiableMap(source);
//会诱发异常UnsupportedOperationException
list.add("app");
singleton.add("kkk");
unmodifiableMap.put("英语", 20);
}
}