Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java对象列表中显示重复的属性值一次_Java_List_Java 8 - Fatal编程技术网

在Java对象列表中显示重复的属性值一次

在Java对象列表中显示重复的属性值一次,java,list,java-8,Java,List,Java 8,我有一个java对象列表,如下所示 我想将它转换为一个列表,其中第一个对象只有一次“相机闪光灯故障”和“相机外壳损坏”,如下所示。 这里提到的解决方案可以做些什么? 我举了一个员工的例子,他们有一些重复的id 假设您有一个列表作为 List<Employee> employee 您可以将所有属性添加到集合(集合不允许重复),如果该值已在集合中,则方法add返回false,因此您可以设置为清空对象中的属性: Set<String> values = new Has

我有一个java对象列表,如下所示



我想将它转换为一个列表,其中第一个对象只有一次“相机闪光灯故障”和“相机外壳损坏”,如下所示。

这里提到的解决方案可以做些什么?

我举了一个员工的例子,他们有一些重复的id

假设您有一个列表作为

List<Employee> employee

您可以将所有属性添加到
集合
(集合不允许重复),如果该值已在集合中,则方法
add
返回false,因此您可以设置为清空对象中的属性:

Set<String> values = new HashSet<>();
for (MyObject obj : myList) {
    if (!values.add(obj.getValue())) {
        obj.setValue("");
    }
}

具有唯一值的集合表示您正在查找集合:
newhashset(list)
为什么要清除第一个属性?这让你烦恼吗?这背后有什么问题?它看起来是一个很好的候选对象。你真的认为,根据一个列表中的位置以这种方式修改对象是一个好主意吗?如果这些对象也以不同的顺序包含在不同的列表中,会发生什么?如果从列表中删除第一个对象会怎么样?这是为了显示,要求只显示一次属性值。我从数据库中获取这些对象,按第一列排序,然后按第二列排序。因此,所有这些都将分组到一起,并学习1890年●1.●3.●15我不想删除具有相同属性值的对象,我想保留它们,但要使属性值为空,就像我发布的第二个列表中那样。这并不意味着这些对象是重复的,它有更多的属性,这些属性可能有不同的值。你的第二个解决方案是以所需的方式给我第一列的列表,但令人惊讶的是,它抛出的java.sql.SQLSyntaxErrorException:ORA-00942:table或view在尝试使用该列表时并不存在,即使没有进一步的数据库获取。我正在处理取回后的列表。
Set<String> values = new HashSet<>();
for (MyObject obj : myList) {
    if (!values.add(obj.getValue())) {
        obj.setValue("");
    }
}
    myList.stream()
      .collect(Collectors.groupingBy(MyObject::getValue))
      .forEach((k, v) -> v.stream().skip(1).forEach(o->o.setValue("")));