Java之工具类Collections

总结

  1. Collections 是一个操作 Set、List 和 Map 等集合的工具类
  2. Collections 中提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法

实现方法

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Test3 {
	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("b");
		list.add("a");
		list.add("cc");
		list.add("cc");
		list.add("ab");
		System.out.println(list);
		
		//reverse(List):反转 List 中元素的顺序
		Collections.reverse(list);
		System.out.println(list);
		
		//shuffle(List):对 List 集合元素进行随机排序
		Collections.shuffle(list);
		System.out.println(list);
		
		//sort(List):根据元素的自然顺序对指定 List 集合元素按升序排序
		Collections.sort(list);
		System.out.println(list);
		
		//swap(List,int, int):将指定 list 集合中的 i 处元素和 j 处元素进行交换
		Collections.swap(list, 1, 4);
		System.out.println(list);
		
		//Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素
		String max = Collections.max(list);
		System.out.println(max);
		
		//Object min(Collection):根据元素的自然顺序,返回给定集合中的最小元素
		String min = Collections.min(list);
		System.out.println(min);
		
		//int frequency(Collection,Object):返回指定集合中指定元素的出现次数
		Collections.frequency(list, "cc");
		System.out.println(Collections.frequency(list, "cc"));//2
		
		//sort(List,Comparator):根据指定的 Comparator 产生的顺序对 List 集合元素进行排序
		Person3 p3 = new Person3(11,"四十");
		Person3 p1 = new Person3(8,"李四");
		Person3 p2 = new Person3(18,"王二");
		Person3 p4 = new Person3(20,"王五");
		
		//创建list集合接收Person3类型数据
		List<Person3> list1 = new ArrayList<Person3>();
		list1.add(p1);
		list1.add(p2);
		list1.add(p3);
		list1.add(p4);
		//写入时的顺序
		for(Person3 stu :list1) {
			System.out.println("name="+stu.name+",age="+stu.age);
		}

		
		Collections.sort(list1, new Person3());
		System.out.println("-------------------------");
		//按照年龄升序排列后的list
		for(Person3 stu :list1) {
			System.out.println("name="+stu.name+",age="+stu.age);
		}
}

//定义一个person类实现comparator接口,比较的作用
class Person3 implements Comparator<Person3>{
	int age;
	String name;
	Person3(){}
	Person3(int age,String name) {
		this.age = age;
		this.name = name;
	}
	@Override
	public int compare(Person3 o1, Person3 o2) {
		if(o1.age>o2.age) {
			return 1;
		}else if(o1.age<o2.age) {
			return -1;
		}
		return 0;
		
	}
	
}
原文地址:https://www.cnblogs.com/istart/p/12019938.html