Collections工具类

1、排序

reverse(List list): 反转List集合中元素顺序

shuffle(List list):对List中元素随机排序(洗牌)

sort(List list):对List元素自然升序

sort(List list,Comparator cp):自定义比较器排序

swap(List list,int i,int j):将List中i元素与j元素交换

rotate(List list, int distance):将所有元素向右位移指定长度

2、查找、替换

binarySearch(List list,Object obj):二分搜索法,获取指定对象在List中的索引(前提:集合已经排序)

max(Collection coll):返回最大元素

max(Collection coll,Comparator comp):根据自定义比较器,返回最大元素

min(Collection coll):返回最小元素

min(Collection coll,Comparator comp):根据自定义比较器,返回最小元素

fill(List list,Object obj):使用指定对象填充

frequency(Collection Object obj):返回指定集合中指定对象出现的次数

replaceAll(List list,Object obj,Object newObj):替换

 

package test;

/**
 * 
 * @author 作者 Bowen
 * @data 创建时间:2018年12月17日 上午10:50:18
 * @ClassName Person
 * @Description
 * 
 */
public class Person {
	private int status;
	private int endStatus;
	private int processTime;

	public Person(int status, int endStatus, int processTime) {
		super();
		this.status = status;
		this.endStatus = endStatus;
		this.processTime = processTime;
	}

	public int getStatus() {
		return status;
	}

	public void setStatus(int status) {
		this.status = status;
	}

	public int getEndStatus() {
		return endStatus;
	}

	public void setEndStatus(int endStatus) {
		this.endStatus = endStatus;
	}

	public int getProcessTime() {
		return processTime;
	}

	public void setProcessTime(int processTime) {
		this.processTime = processTime;
	}

	@Override
	public String toString() {
		return "Person [status=" + status + ", endStatus=" + endStatus + ", processTime=" + processTime + "]";
	}

}
package test;

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

public class test {
	public static void main(String[] args) {
        List<Person> plist = new ArrayList<Person>(); 
        
        Person p1 = new Person(2,2,300);
        Person p2 = new Person(1,0,100);
        Person p3 = new Person(2,2,200);
        plist.add(p1);
        plist.add(p2);
        plist.add(p3);
        for (Person p : plist) {
        	System.out.println("排序前的结果:"+p);
        }
        Collections.sort(plist, new Comparator<Person>(){
            /*
             * int compare(Person p1, Person p2) 返回一个基本类型的整型,
             * 返回负数表示:p1 小于p2,
             * 返回0 表示:p1和p2相等,
             * 返回正数表示:p1大于p2
             */
            public int compare(Person p1, Person p2) {
                
            	int i = p1.getStatus() - p2.getStatus();
            	if (i == 0) {
            		int j = p1.getEndStatus() - p2.getEndStatus();
            		if (j == 0) {
            			return p1.getProcessTime() - p2.getProcessTime();
            		} else {
            			return j;
            		}
            	}
            	return i;
            }
        });
        for (Person p : plist) {
        	System.out.println("排序后的结果:"+p);
        }
}

输出结果:

排序前的结果:Person [status=2, endStatus=2, processTime=300]
排序前的结果:Person [status=1, endStatus=0, processTime=100]
排序前的结果:Person [status=2, endStatus=2, processTime=200]
排序后的结果:Person [status=1, endStatus=0, processTime=100]
排序后的结果:Person [status=2, endStatus=2, processTime=200]
排序后的结果:Person [status=2, endStatus=2, processTime=300]

根据自己想要的顺序排序

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值