package com.model.collections;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
/**
* @Description:测试类
* @Author: 张紫韩
* @Crete 2021/6/16 9:02
*/
public class CollectionsDemo01 {
public static void main(String[] args) {
/**
* reverse(list) :反转list中元素的顺序
* shuffle(list) :对list集合中元素进行随机的排序
* sort(list):根据元素的自然排序对指定的list集合元素按升序排序
* sort(list,Comparator):根据Comparator产生的顺序对list进行排序
* swap(list,int,int):将指定的list集合中i处元素和j处元素进行交换
*
*
*
* */
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
list.add("f");
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<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
// return o1.length()-o2.length();
}
});
System.out.println("按照字符串的ASCII进行排序(可以按我们想要的方式进行比较排序)"+list);
Collections.swap(list, 0, 1);
System.out.println("交换第一个和第二个元素后的list"+list);
//第二种,查询和替换
System.out.println("自然排序下最大的值"+Collections.max(list));
String max = Collections.max(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
});
System.out.println("自定义的排序方式的最大值"+max);
System.out.println("自然排序最小"+Collections.min(list));
//统计元素中出现的次数
System.out.println("a出现的次数"+Collections.frequency(list, "a"));
//将数组1中的数据拷贝到另一个数组中
ArrayList<Object> list1 = new ArrayList<>();
//为了完成一个完整的拷贝,我们需要给list1赋值,数组大小要和list的大小一样
for (int i=0;i<list.size();i++){
list1.add("");
}
Collections.copy(list1, list);
System.out.println(list1);
//将数组中的默认个值全部替换为 另一个值 replace(List list,Object oldVal ,Object newVal)
Collections.replaceAll(list, "a", "A");
System.out.println("所有的a被替换成了A:"+list);
}
}