框架师 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日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题