1、
package com.fish.util; import java.util.ArrayList; import java.util.Collections; /* 集合的工具类(Collections) 说出Collection与Collections的区别? 1、 Collection是一个单例集合的根接口,Collections是操作对象的一个工具类。 Collections:常见方法: 1,对list进行二分查找:前提该集合一定要有序。 int binarySearch(list,key); //必须根据元素自然顺序对列表进行升级排序 int binarySearch(list,key,Comparator); //要求list 集合中的元素都是Comparable 的子类。 2,对list集合进行排序。 sort(list); //对list进行排序,其实使用的事list容器中的对象的compareTo方法 sort(list,comaprator); //按照指定比较器进行排序 3,对集合取最大值或者最小值。 max(Collection) max(Collection,comparator) min(Collection) min(Collection,comparator) 4,对list集合进行反转。 reverse(list); 5,可以将不同步的集合变成同步的集合。 Set synchronizedSet(Set<T> s) Map synchronizedMap(Map<K,V> m) List synchronizedList(List<T> list) */ public class Demo1 { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(12); list.add(2); list.add(19); // 排序 Collections.sort(list); System.out.println("元素所在的索引值是:" + Collections.binarySearch(list, 12)); System.out.println("最大值:" + Collections.max(list)); System.out.println("最小值:" + Collections.min(list)); Collections.reverse(list); //翻转不需要用到排序 System.out.println("集合的元素:" + list); list=(ArrayList<Integer>) Collections.synchronizedList(list);//将list转换为线程安全的方法 } }
package com.fish.util; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; class Person{ String name; int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "{姓名:"+this.name+" 年龄:"+this.age+"}"; } } class AgeComparator implements Comparator<Person>{ @Override public int compare(Person o1, Person o2) { return o1.age-o2.age; } } public class Demo2 { public static void main(String[] args) { ArrayList<Person> list = new ArrayList<Person>(); list.add(new Person("狗娃",12)); list.add(new Person("张三",22)); list.add(new Person("李四",2)); Collections.sort(list,new AgeComparator()); System.out.println("元素所在的索引值是:"+Collections.binarySearch(list, new Person("张三",22), new AgeComparator())); System.out.println("最大值:"+Collections.max(list,new AgeComparator())); System.out.println("最小值:"+Collections.min(list,new AgeComparator())); Collections.reverse(list); //翻转不需要用到排序,所以不需要传入比较器 System.out.println("集合的元素:"+list); } }
时间: 2024-09-28 15:36:55