【问题标题】:How to select unique item from list?如何从列表中选择唯一的项目?
【发布时间】:2019-10-22 04:28:14
【问题描述】:

我有一个用户 ID 列表。它由从不同表中选择的用户 ID 组成,因此其中有重复的 ID。如何仅从该列表中选择唯一 ID 或删除重复的 ID?

List < userDto > list = uC.match(dto2);
if (list.size() > 0) {
    for (int i = 0; i < list.size(); i++) {
        System.out.println(list.size());
        System.out.println("Data Found");

        userDto dto3 = new userDto();
        dto3 = uC.get(list.get(i));

        System.out.println(dto3.firstName);
    }
} else {
    System.out.println("Data not Found");
}

我编辑如下,它显示与列表相同的结果..我是新手。我不知道怎么了..请帮忙

Set<userDto> list = new HashSet<userDto>(uC.match1(dto2));

    if(list.size()>0){
    for (int i = 0; i < list.size(); i++) {
        System.out.println(list.size());
        userDto dto3=new userDto();
        for (userDto s : list) {
            dto3=uC.get(s);
        }
        System.out.println(dto3.firstName);
        }
    }

【问题讨论】:

标签: java spring jsp


【解决方案1】:

将它们全部添加到 Set 所做的集合中

【讨论】:

  • 它没有用。不知道为什么?我正在做的是....将随机(包含多个)数据添加到集合中。当我想使用它时,我不想要重复的数据。它给出与 LIST 相同的结果。
  • 你需要在对象上实现可比较,否则默认行为只是比较它们的内存位置和类类型
  • 我的意思是在你的 dto 对象上覆盖 equals() 而不是可比较的
【解决方案2】:

将集合用于唯一值。

 Set<userDto> hSet = new HashSet<userDto>(list); 

【讨论】:

    【解决方案3】:

    您可以使用 Set 代替 List 来存储唯一元素。您也可以将 List 转换为 Set

     Set<userDto> list=new HashSet<userDto>(uC.match(dto2));
    

    【讨论】:

      猜你喜欢
      • 2013-03-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      相关资源
      最近更新 更多