Java.util.comparable
public class DIParams implements Comparable<DIParams> {
/**
*
*/
@Column(id = "id", type = ColumnType.uuid, datatype = "string32")
private java.lang.String id;
/**
*
*/
@Column(id = "name_ch", datatype = "string32")
private java.lang.String nameCh;
/**
*
*/
@Column(id = "name_en", datatype = "string32")
private java.lang.String nameEn;
/**
*
*/
@Column(id = "description", datatype = "string256")
private java.lang.String description;
/**
*
*/
@Column(id = "owner_id", datatype = "string32")
private java.lang.String ownerId;
/**
*
*/
@Column(id = "value_en", datatype = "string128")
private java.lang.String valueEn;
/**
* 设置
*/
public void setId(java.lang.String id) {
this.id = id;
}
/**
* 获取
*/
public java.lang.String getId() {
return id;
}
/**
* 设置
*/
public void setNameCh(java.lang.String nameCh) {
this.nameCh = nameCh;
}
/**
* 获取
*/
public java.lang.String getNameCh() {
return nameCh;
}
/**
* 设置
*/
public void setNameEn(java.lang.String nameEn) {
this.nameEn = nameEn;
}
/**
* 获取
*/
public java.lang.String getNameEn() {
return nameEn;
}
/**
* 设置
*/
public void setDescription(java.lang.String description) {
this.description = description;
}
/**
* 获取
*/
public java.lang.String getDescription() {
return description;
}
/**
* 设置
*/
public void setOwnerId(java.lang.String ownerId) {
this.ownerId = ownerId;
}
/**
* 获取
*/
public java.lang.String getOwnerId() {
return ownerId;
}
/**
* 设置
*/
public void setValueEn(java.lang.String valueEn) {
this.valueEn = valueEn;
}
/**
* 获取
*/
public java.lang.String getValueEn() {
return valueEn;
}
//------------------修改----------------
private static final Map<String, Integer> weight = new HashMap<String, Integer>();
static{
//数据源参数权重
weight.put("ip", 1);
weight.put("port", 2);
weight.put("database", 3);
weight.put("sid", 3);
weight.put("username", 4);
weight.put("password", 5);
//数据对象参数权重
weight.put("sql", 1);
weight.put("where", 2);
};
@Override
public int compareTo(DIParams o) {
return weight.get(nameEn)-weight.get(o.getNameEn());
}
}
使用java.util.Collections 的sort方法对list排序
public void static main(String[] args){ List<DIParams> list = dao.select(diParams);
List<DIParams> listForShow = new ArrayList<DIParams>();
int total = list.size();
int start = (index - 1) * size + 1;
int end = index * size > total ? total : index * size;
for (int i = start; i <= end; i++) {
if ("password".equals(list.get(i - 1).getNameEn())) {
listForShow.add(passwordHidden(list.get(i - 1)));
continue;
}
listForShow.add(list.get(i - 1));
}
Collections.sort(listForShow);
system.out.print(JSONObject.toJSONString(listForShow);)
}
Java.util.comparator
Interface Comparator<T>
对任意类型集合对象进行整体排序,排序时将此接口的实现传递给Collections.sort方法或者Arrays.sort方法排序。
实现int compare(T o1, T o2);
方法,返回正数,零,负数各代表大于,等于,小于。
public class Test {
private final class CompareName implements Comparator<Milan> {
boolean is_Ascend;
public CompareName(boolean b) {
// TODO Auto-generated constructor stub
is_Ascend = b;
}
@Override
public int compare(Milan o1, Milan o2) {
// TODO Auto-generated method stub
if (is_Ascend)
return o1.p_Name.compareTo(o2.p_Name);
else
return o2.p_Name.compareTo(o1.p_Name);
}
}
private final class CompareId implements Comparator<Milan> {
boolean is_Ascend;
public CompareId(boolean b) {
// TODO Auto-generated constructor stub
is_Ascend = b;
}
@Override
public int compare(Milan o1, Milan o2) {
// TODO Auto-generated method stub
int a, b;
if (is_Ascend) {
a = o1.p_Id;
b = o2.p_Id;
} else {
a = o2.p_Id;
b = o1.p_Id;
}
if (a > b)
return 1;
else if (a == b)
return 0;
else
return -1;
}
}
public static void main(String[] args) {
Test t = new Test();
Milan p1 = new Milan(1, "Dida");
Milan p2 = new Milan(2, "Cafu");
Milan p3 = new Milan(3, "Maldini");
Milan P4 = new Milan(6, "Baresi");
Milan p5 = new Milan(9, "Inzaghi");
Milan P6 = new Milan(10, "Costa");
List<Milan> mList = new ArrayList<Milan>();
mList.add(p1);
mList.add(P6);
mList.add(P4);
mList.add(p2);
mList.add(p5);
mList.add(p3);
System.out.println("初始顺序");
System.out.println("姓名 | 号码");
for (Milan p : mList) {
System.out.println(p.p_Name + " | " + p.p_Id);
}
System.out.println();
System.out.println("对号码降序");
System.out.println("姓名 | 号码");
Collections.sort(mList, t.new CompareId(false));
for (Milan p : mList) {
System.out.println(p.p_Name + " | " + p.p_Id);
}
System.out.println();
System.out.println("对姓名升序");
System.out.println("姓名 | 号码");
Collections.sort(mList, t.new CompareName(true));
for (Milan p : mList) {
System.out.println(p.p_Name + " | " + p.p_Id);
}
}
}