集合sort排序,1与-1的区别

1、集合sort排序

List<Integer> array =new ArrayList<>() ;
        array.add(4);
        array.add(6);
        array.add(7);
        array.add(9);
//倒叙        
array.sort((o1,o2)->{
           return String.valueOf(o2).compareTo(o1.toString());
			//倒序:[9,7,6,4]
//正序
array.sort((o1,o2)->{
           return String.valueOf(o1).compareTo(o2.toString());
           //正序:[4,6,7,9]

2、指定集合中某个数组在最后或是第一位/不考虑其他数据顺序

使用sort排序

//无序集合
  Set<String> array =new HashSet<>() ;
        array.add("7");
        array.add("最前的数据");
        array.add("6");
        array.add("4");
        array.add("最后的数据");
        array.add("9");
        System.out.println(array);
        //实现将集合数组放在最后一位
        List<String> collect1 = array.stream().sorted((x1, x2) -> {
            if (x1.equals("最后的数据")) {
                return 1;
            }else if(x2.equals("最后的数据")){
                return -1;
            }
            return 0;
        }).collect(Collectors.toList());
        System.out.println(collect1);
        ///[最前的数据, 4, 6, 7, 9, 最后的数据]
        //实现将集合数组放在最前一位
        List<String> collect2 = array.stream().sorted((x1, x2) -> {
            if (x1.equals("最前的数据")) {
                return -1;
            }
            return 1;
        }).collect(Collectors.toList());
        System.out.println(collect2);
        //[最前的数据, 最后的数据, 4, 6, 7, 9]

注:接受时需要用List有序的集合进行接收

当返回返回值是-1 时会将数据往前移动,返回1时数据将会往后移动,返回0时数据将不会动

3、指定集合中某个数组在最后或是第一位,并且考虑其他数据顺序

思路:
1,两个排序
先将集合倒叙通过

array.sort((o1,o2)->{
           return String.valueOf(o2).compareTo(o1.toString());

2、然后用判断将某数据拍到第一位

  List<String> collect2 = array.stream().sorted((x1, x2) -> {
            if (x1.equals("最前的数据")) {
                return -1;
            }
            return 1;
        }).collect(Collectors.toList());

总结:可以写两个排序,先到序,在把某一个值放到指定位置。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值