框架师 2021-03-16 15:49 采纳率: 93.3%
浏览 82
已结题

请问如何对集合对象的string类型字段进行排序呢?

实体类是这样的
public class BtHistory {

    /**
     * 逻辑节点
     */
    private String ln;

}

我现在需要对这个实体类的字段进行排序,以升序方式进行排序,请问可以怎么样处理,可以贴上实例代码嘛

List<BtseHistory> locations = influxDbConnection.getInfluxQuery(BtseHistory.class, sql);

ln节点的值是这种类型的

ln=“celGGIO1.AnIn75.mag.f”,需要将75截取出来,然后排序

List<BtseHistory> locations = influxDbConnection.getInfluxQuery(BtseHistory.class, sql);
            Map<String, Object> map = new HashMap<>();
            Set<BtseHistory> historySet = new HashSet<>(locations);
            for (final BtseHistory btseHistory : historySet) {
                map.put("key",btseHistory);
            }
        }

中间有一段是用Set进行去重

请问如何排序呢,如果可以的话,有什么方案可以进行去重排序一起实现

  • 写回答

1条回答 默认 最新

  • 何必要如此 2021-03-16 16:33
    关注
    package com.boot.test.demo;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    
    import java.util.*;
    import java.util.stream.Collectors;
    
    @Data
    @AllArgsConstructor
    public class BtHistory {
    
        /**
         * 逻辑节点
         */
        private String ln;
    
    
        public static void main(String[] args) {
            List<BtHistory> list = new ArrayList<>();
            list.add(new BtHistory("celGGIO1.AnIn75.mag.f"));
            list.add(new BtHistory("celGGIO1.AnIn80.mag.f"));
            list.add(new BtHistory("celGGIO1.AnIn60.mag.f"));
            Set<BtHistory> set = new HashSet<>(list);
    
            List<BtHistory> collect = set.stream()
                    .sorted(Comparator.comparingInt(a -> Integer.parseInt(a.getLn().substring(13, 15))))//这里截取方式自己去定义可能有不是两位数的情况
                    .collect(Collectors.toList());
            System.out.println(collect.toString());
        }
    
    }
    [BtHistory(ln=celGGIO1.AnIn60.mag.f), BtHistory(ln=celGGIO1.AnIn75.mag.f), BtHistory(ln=celGGIO1.AnIn80.mag.f)]
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月13日

悬赏问题

  • ¥20 iOS绕地区网络检测
  • ¥15 python验证码滑块图像识别
  • ¥15 根据背景及设计要求撰写设计报告
  • ¥15 QT6颜色选择对话框显示不完整
  • ¥20 能提供一下思路或者代码吗
  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥15 DS18B20内部ADC模数转换器