Collections
常用静态方法
Collections工具类里面包含了一系列的静态方法,用于管理或操作集合(比如排序),要想实现排序通常有两种方式
第一种方式
: 集合中的元素实现了Comparable接口
并重写compareTo方法
第二种方式
: 调用sort方法时额外接收一个实现了Comparator接口的比较器对象并实现compare方法
方法名 | 功能 |
---|---|
synchronizedList(集合) | 把一个非线程安全的集合转化为一个线程安全的集合 |
sort(集合,比较器对象) | 因为List集合 不会对元素进行排序,可以使用sort方法对其排序,对Set集合排序 时可以先将其转化为List集合<br |
public class CollectionsTest {public static void main(String[] args) {// ArrayList集合不是线程安全的List<String> list = new ArrayList<>();// 把ArrayList集合变成线程安全的Collections.synchronizedList(list);// 排序list.add("abf");list.add("abx");list.add("abc");list.add("abe");Collections.sort(list);for(String s : list){System.out.println(s);}List<WuGui2> wuGuis = new ArrayList<>();wuGuis.add(new WuGui2(1000));wuGuis.add(new WuGui2(8000));wuGuis.add(new WuGui2(500));// 对List集合中元素排序时需要保证List集合中的元素实现了Comparable接口Collections.sort(wuGuis);for(WuGui2 wg : wuGuis){System.out.println(wg);}// 对Set集合排序Set<String> set = new HashSet<>();set.add("king");set.add("kingsoft");set.add("king2");set.add("king1");// 将Set集合转换成List集合List<String> myList = new ArrayList<>(set);Collections.sort(myList);for(String s : myList) {System.out.println(s);}}
}class WuGui2 implements Comparable<WuGui2>{int age;public WuGui2(int age){this.age = age;}@Overridepublic int compareTo(WuGui2 o) {return this.age - o.age;}@Overridepublic String toString() {return "WuGui2{" +"age=" + age +'}';}
}