Collections.sort()自定义排序针对字符串集合 和 list对象排序

字符串集合的自定义排序:html

package ceshi;java



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


public class ceshi {
public static void main(String[] args){
String[] monthDays = "1,2,4,5,7,8,56,11,30,21,23,26,27,4,98".split(",");
List<String> yearListlist = Arrays.asList(monthDays);
Collections.sort(yearListlist,new SComparator());
for(String kk :yearListlist){
System.out.println(kk);
}

}


    
    static class SComparator implements Comparator {  
        public int compare(Object object1, Object object2) {// 实现接口中的方法  
            Integer p1 = Integer.parseInt(String.valueOf(object1)); // 强制转换  
            Integer p2 = Integer.parseInt(String.valueOf(object2));
            if(p1 > p2){
            return 1;
            }else if(p1 == p2){
            return 0;
            }else{
            return -1;
            }
            //return new Double(p1.price).compareTo(new Double(p2.price));  
            //return p1.compareTo(p2);
        }  
    }

}ide

list对象排序自定义排序,对象实现Comparable接口 ,重写compareTo()方法来实现:
post

package test;

public class Pojo implements Comparable{
private Integer bijiao;
private String nameString;
private String status;
public Integer getBijiao() {
return bijiao;
}
public void setBijiao(Integer bijiao) {
this.bijiao = bijiao;
}
public String getNameString() {
return nameString;
}
public void setNameString(String nameString) {
this.nameString = nameString;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}

@Override
public int compareTo(Object gg){
Pojo kk = (Pojo)gg;
if(this.bijiao>kk.bijiao){
return 1;
}else {
return -1;
}
}
}
this


package test;


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


public class bi {
public static void main(String[] args){
List<Pojo> ceshi = new ArrayList<Pojo>();
Pojo k1 = new Pojo();
k1.setBijiao(1);
k1.setNameString("k1");

Pojo k2 = new Pojo();
k2.setBijiao(2);
k2.setNameString("k2");

Pojo k3 = new Pojo();
k3.setBijiao(3);
k3.setNameString("k3");

ceshi.add(k3);
ceshi.add(k2);
ceshi.add(k1);
Collections.sort(ceshi);

for(Pojo zz:ceshi){
System.out.println(zz.getNameString());
}
}
spa

}htm

compareto就是比较两个数据的大小关系 大于0表示前一个数据比后一个数据大, 0表示相等,小于0表示第一个数据小于第二个数据.对象

升序 Collections.sort(list) 降序 Collections.reserve(list) 随机 Collections.shuffle(list)