java中寻找arraylist进行排序_java--->ArrayList进行排序的实现

packagecom.cai.test;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.List;/*** 目标,实现对List进行自定义排序*/

public classListSort {public static voidmain(String[] args) {

method3();

}/*** 1.直接Collections进行排序*/

public static voidmethod1(){

List listInteger = new ArrayList();

listInteger.add(5);

listInteger.add(8);

listInteger.add(1);

listInteger.add(22);

Collections.sort(listInteger);

System.out.println(listInteger.toString());//[1, 5, 8, 22]

}/*** 2.进行实体类的排序 ,实体类实现Comparable接口,自定义排序方式*/

public static voidmethod2(){

List userList = new ArrayList();

userList.add(new User("路飞",19));

userList.add(new User("香克斯",42));

userList.add(new User("大妈",50));

userList.add(new User("黑胡子",39));

userList.add(new User("凯多",49));

Collections.sort(userList);

System.out.println(userList.toString());//[User{name='路飞', age=19}, User{name='黑胡子', age=39}, User{name='香克斯', age=42}, User{name='凯多', age=49}, User{name='大妈', age=50}]

}/*** Collections中的匿名内部类进行排序*/

public static voidmethod3(){

List userList = new ArrayList();

userList.add(new User("路飞",19));

userList.add(new User("香克斯",42));

userList.add(new User("大妈",50));

userList.add(new User("黑胡子",39));

userList.add(new User("凯多",49));

Collections.sort(userList,new Comparator() {

@Overridepublic intcompare(User o1, User o2) {//这里 和 放法2 打印区分 这里用年龄降序

int dif = o1.getAge()-o2.getAge();if(dif>0){return -1;

}else if(dif<0){return 1;

}return 0;

}

});

System.out.println(userList.toString());//[User{name='大妈', age=50}, User{name='凯多', age=49}, User{name='香克斯', age=42}, User{name='黑胡子', age=39}, User{name='路飞', age=19}]

}

}class User implements Comparable{privateString name;private intage;public User(String name, intage) {this.name =name;this.age =age;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}public intgetAge() {returnage;

}public void setAge(intage) {this.age =age;

}

@OverridepublicString toString() {return "User{" +

"name='" + name + '\'' +

", age=" + age +

'}';

}/*** 重写Comparable接口的compareTo方法,

* 根据年龄升序排列,降序修改相减顺序即可

*@param*@return

*/@Overridepublic intcompareTo(User user) {return this.age-user.age;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值