Collections工具类
Collections是操作List&Map&Set的静态工具类。与Collection不同不可被实例化。
Collections静态类常用方法
reverse(List)反转数据
shuffle(List)随机排序
sort(List)自然排序,实现Comparable接口,重写comparTo方法
sort(List,Comparator)自定义排序
swap(List,int,int)交换指定
Object max(Collection)返回最大元素
Object max(Collection,Comparator)根据指定排序返回最大元素
Object min(Collection)
Object min(Collection,Comparator)
int frequency(Collection,Object)返回指定元素出现的次数
void copy(List dest,List list)将list复制给dest
List dest = Arrays.asList(new Object[list.size()]);
Collection.copy(dest,list)
boolean replaceAll(List,Object old,Object new)新值替换旧值
自然排序
public void test() {
List list = new ArrayList();
list.add(58);
list.add(45);
list.add(96);
//自然排序
Collections.sort(list);
System.out.println(list);
}
自定义排序
public void test() {
List list = new ArrayList();
list.add(58);
list.add(45);
list.add(96);
//自定义排序
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
System.out.println(list);
}
随机排序
public void test() {
List list = new ArrayList();
list.add(58);
list.add(45);
list.add(96);
//随机排序
Collections.shuffle(list);
System.out.println(list);
}
交换元素
public void test() {
List list = new ArrayList();
list.add(58);
list.add(45);
list.add(96);
//交换指定位置元素
Collections.swap(list,0,1);
System.out.println(list);
}
自然排序下返回最大值
public void test() {
List list = new ArrayList();
list.add(58);
list.add(45);
list.add(96);
//自然排序返回最大元素
Comparable max = Collections.max(list);
System.out.println(max);
}
自定义排序下返回最大值
public void test() {
List list = new ArrayList();
list.add(58);
list.add(45);
list.add(96);
//自定义
Comparable max = Collections.max(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
System.out.println(max);
}
复制list到desk
public void test3(){
List list = new ArrayList();
list.add(58);
list.add(45);
list.add(96);
list.add(96);
list.add(96);
//需要通过数组转集合创建
List desk = Arrays.asList(new Object[list.size()]);
Collections.copy(desk,list);
System.out.println(desk);
}
返回指定对象在集合中出现的次数
public void test(){
List list = new ArrayList();
list.add(58);
list.add(45);
list.add(96);
list.add(96);
list.add(96);
int frequency = Collections.frequency(list, 96);
System.out.println(frequency);
}
数组转集合
public void test() {
List list = new ArrayList();
list.add(58);
list.add(45);
list.add(96);
//数组转集合
List dest = Arrays.asList(new Object[]{1,2,3});
System.out.println(dest );
}
反转集合
public void test() {
List list = new ArrayList();
list.add(58);
list.add(45);
list.add(96);
//反转数据
Collections.reverse(list);
System.out.println(list);
}
线程安全
public void test() {
List list = new ArrayList();
list.add(58);
list.add(45);
list.add(96);
//线程安全的List
List list = Collections.synchronizedList(list);
//线程安全的Map
Map map = Collections.synchronizedMap(new HashMap());
}
Java SE系列笔记——集合
https://blog.youkuaiyun.com/weixin_46002478/article/details/109055133