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]
根据自己想要的顺序排序