Collections Comparable 内部定义实现排序

本文通过实现Comparable接口完成Java对象的排序,使用自定义DataBean类,根据名称字段进行字母顺序排列,并展示排序前后列表的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一篇文章中,介绍了[b]Comparable [/b]和 [b]Comparator[/b]排序的不同,还具体实现了[b]Comparator[/b]排序的方法,在这里,简单实现[b]Comparable[/b]接口完成的排序,数据同上一篇,只是具体实现的方法改变了.

[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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值