package com.Lucky;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
/*
Collections:java。util.Collections
解析:Collections是集合的工具类,拥有许多处理集合操作的方法
方法: addAll(); 批量添加数据
shuffle() 打乱数据
reverse() 反转
sort() 排序
binarySearch() 先排序再二分查找
swap() 互换位置
copy() 拷贝数据
fill() 修改数据
min/max() 最大值/最小值
*/
public class CollectionsDemo {
public static void main(String[] args) {
//创建一个ArrayList集合
ArrayList<String> arrList=new ArrayList<>();
//调用工具类Collections
System.out.println("---------addAll()------------");
Collections.addAll(arrList,"dsg","A","QER","WSQW","AFGHJEF");
System.out.println(arrList);
System.out.println("---------shuffle()------------");
Collections.shuffle(arrList); //打乱
System.out.println(arrList);
System.out.println("---------reverse()------------");
Collections.reverse(arrList); //反转
System.out.println(arrList);
System.out.println("---------sort()------------");
Collections.sort(arrList); //排序
System.out.println(arrList);
Collections.sort(arrList, new Comparator<String>() { //可以自定义排序【利用比较器排序】
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
}); //排序
System.out.println(arrList);
System.out.println("---------binarySearch() 先排序再二分查找------------");
ArrayList<Integer> list=new ArrayList<>();
ArrayList<Integer> list1=new ArrayList<>();
Collections.addAll(list,1,2,3,8,9,4,6,7);
list.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1-o2;
}
});
System.out.println(list);
//二分查找法查询A字符串
System.out.println(Collections.binarySearch(list,6)); //返回指定key的索引
System.out.println("---------swap() 互换位置------------");
Collections.swap(list,1,3); //互换位置
System.out.println(list);
System.out.println("---------copy() 拷贝数据------------");
/*
前提条件:新的集合长度比原来的集合长度小,方法会报错,因为 IndexOutOfBoundsException 异常【下标越界异常】
*/
Collections.addAll(list1,4,5,6,7,8,9,1,2,3,20,30,54);
Collections.copy(list1,list); //将list的数据拷贝到list1中,相同位置的数据将会被覆盖
System.out.println(list1);
System.out.println("---------fill() 修改数据------------");
Collections.fill(list1,100); //将list1的数据全部修改成100;
System.out.println(list1);
System.out.println("---------max/min() 最大值与最小值------------");
System.out.println(Collections.min(list));
System.out.println(Collections.max(list));
}
}