Collections类的学习

Collection和Collections的区别:
  Collection:顶层次单列集合的根接口,它是一个集合,是一个接口
  Collections:是针对集合操作的工具类,有一些功能:随机置换,集合里面的二分查找,将集合的元素进行反转
 

  Collections重要的方法:

  public static <T> int binarySearch(List<T> list, T key)集合的二分查找
  public static  T max(Collection coll):获取集合中的最大值
  public static void reverse(List<?> list):将集合中的元素顺序反转
  public static void huffle(List<?> list):将集合中的元素打乱

  public static  T max(Collection coll):获取集合中的最大值
  public static void reverse(List<?> list):将集合中的元素顺序反转
  public static void huffle(List<?> list):将集合中的元素打乱

  public static void sort(List<T> list)

举例:

public class Demo1 {
	public static void main(String[] args) {
		List<Integer> arr=new ArrayList<Integer>();
		arr.add(56);
		arr.add(44);
		arr.add(55);
		arr.add(33);
		arr.add(21);
		Collections.sort(arr);
		System.out.println(arr);
		int s=Collections.binarySearch(arr, 55);
		System.out.println(s);
		System.out.println(Collections.max(arr));
	    Collections.reverse(arr);
	    System.out.println(arr);
	    Collections.shuffle(arr);
	    System.out.println(arr);
	}
}

public static void sort(List<T> list ,Comparator comparator):可以使用比较器进行排序 

举例:

public class Demo2 {
public static <T> void main(String[] args) {
	List<Student> arr=new ArrayList<Student>();
	Student s1=new Student("曾轶可",28);
	Student s2=new Student("毛不易",26);
	Student s3=new Student("薛之谦",30);
	Student s4=new Student("李荣浩",25);
	Student s5=new Student("张嘉译",40);
	Student s6=new Student("曾轶可",28);
	arr.add(s1);
	arr.add(s2);
	arr.add(s3);
	arr.add(s4);
	arr.add(s5);
	arr.add(s6);
	Collections.sort(arr, new Comparator<Student>() {

		@Override
		public int compare(Student s1, Student s2) {
		int num=s1.getAge()-s2.getAge();
		int num1=num==0?s1.getName().compareTo(s2.getName()):num;
		return num1;
		}	
	});
	for(Student s:arr) {
		System.out.println(s.getName()+"---"+s.getAge());
	}
}
}
注释:同一个学生对象可以重复

猜你喜欢

转载自blog.csdn.net/wt5264/article/details/80328972