字符串集合的自定义排序:
package ceshi;
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);
}
}
}
list对象排序自定义排序,对象实现Comparable接口 ,重写compareTo()方法来实现:
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;
}
}
}
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());
}
}
}
compareto就是比较两个数据的大小关系 大于0表示前一个数据比后一个数据大, 0表示相等,小于0表示第一个数据小于第二个数据.