java中对list排序问题

1、 如果list集合里面存放的是基础数据类型和String 怎么可以直接调用 Collections类的sort() 方法

List<String> list = new ArrayList<String>();
		list.add("2");
		list.add("1");
		list.add("4");
		list.add("3");
		Collections.sort(list);

但是这种方法只能是ASC升序排序 如果想要DESC降序排序则必须 重写  Collections.sort  的 compare方法

final String type = "DESC";
		Collections.sort(list, new Comparator<String>() {
			@Override
			public int compare(String o1, String o2) {
				Boolean sortType = (StringUtils.isEmpty(type) || "ASC".equals(type));
				return sortType ? o1.compareTo(o2) : o2.compareTo(o1) ;
			}
		});

2、 list里面存放的是对象 则 重写  Collections.sort  的 compare方法  比较对象的某个属性 当然也可以是对个属性 

final String type = "DESC";
		Collections.sort(list, new Comparator<Cat>() {
			@Override
			public int compare(Cat o1, Cat o2) {
				Boolean sortType = (StringUtils.isEmpty(type) || "ASC".equals(type));
				Integer size = o1.getSize();
				Integer size1 = o2.getSize();
				return sortType ? size.compareTo(size1) : size1.compareTo(size) ;
			}
		});





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值