在上一篇文章中,介绍了[b]Comparable [/b]和 [b]Comparator[/b]排序的不同,还具体实现了[b]Comparator[/b]排序的方法,在这里,简单实现[b]Comparable[/b]接口完成的排序,数据同上一篇,只是具体实现的方法改变了.
[b][color=indigo][size=medium]DataBean.java[/size][/color][/b]
[b]说明:[/b]需要在类内部实现Comparable接口,并实现该接口的compareTo的方法.在这里使用的[b]String[/b]中已经实现的compareTo的方法,按字母进行排序.
[b][color=indigo][size=medium]RunDemoMain.java[/size][/color][/b]
[color=darkred][size=medium][b]运行后显示:[/b][/size][/color]
[b][color=indigo][size=medium]DataBean.java[/size][/color][/b]
package com.baomw;
import java.io.Serializable;
import java.text.MessageFormat;
public class DataBean implements Serializable,Comparable<DataBean>{
private static final long serialVersionUID = 1L;
private long id;
private String name;
private String sex;
public DataBean() {
}
public DataBean(long id, String name, String sex) {
this.id = id;
this.name = name;
this.sex = sex;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return MessageFormat.format("id:{0},name:{1},sex:{2}", this.id,
this.name, this.sex);
}
@Override
public int compareTo(DataBean o) {
return this.name.compareTo(o.getName());
}
}
[b]说明:[/b]需要在类内部实现Comparable接口,并实现该接口的compareTo的方法.在这里使用的[b]String[/b]中已经实现的compareTo的方法,按字母进行排序.
[b][color=indigo][size=medium]RunDemoMain.java[/size][/color][/b]
package com.baomw;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class RunDemoMain {
public static void main(String[] args) {
List<DataBean> dataBeans = new ArrayList<DataBean>();
dataBeans.add(new DataBean(23, "b", "w"));
dataBeans.add(new DataBean(34, "e", "w"));
dataBeans.add(new DataBean(12, "s", "w"));
dataBeans.add(new DataBean(10, "c", "w"));
dataBeans.add(new DataBean(19, "g", "w"));
dataBeans.add(new DataBean(78, "a", "w"));
dataBeans.add(new DataBean(66, "w", "w"));
dataBeans.add(new DataBean(50, "r", "w"));
System.out.println("==========排序前==========");
for (DataBean bean : dataBeans) {
System.out.println(bean);
}
System.out.println("==========排序后==========");
Collections.sort(dataBeans);
for (DataBean bean : dataBeans) {
System.out.println(bean);
}
}
}
[color=darkred][size=medium][b]运行后显示:[/b][/size][/color]
==========排序前==========
id:23,name:b,sex:w
id:34,name:e,sex:w
id:12,name:s,sex:w
id:10,name:c,sex:w
id:19,name:g,sex:w
id:78,name:a,sex:w
id:66,name:w,sex:w
id:50,name:r,sex:w
==========排序后==========
id:78,name:a,sex:w
id:23,name:b,sex:w
id:10,name:c,sex:w
id:34,name:e,sex:w
id:19,name:g,sex:w
id:50,name:r,sex:w
id:12,name:s,sex:w
id:66,name:w,sex:w