使用java 8从内部对象中查找实体列表中所有ID的列表的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用java 8从内部对象中查找实体列表中所有ID的列表的方法相关的知识,希望对你有一定的参考价值。

我有一个实体:

public class Entity

    private long id;    
    private InnerEnity data;

    public long getId() 
        return id;
    

    public InnerEnity getData() 
        return data;
    

InnerEnity类

public class InnerEnity 

    private long id;    
    private String data;

    public long getId() 
        return id;
    

    public String getData() 
        return data;
    

我需要的是InnerEnity ID列表。为了解决这个问题我试过这样的事情: -

List innerEnityIds = listOfEnity.stream()。map(sys - > sys.getData()。stream()。map(obj-> obj.getId()。collect(Collectors.toList())));

答案

你只需要map entity到它的内部实体(dataid

List<Long> innerEnityIds = listOfEnity.stream()
        .map(entity -> entity.getData().getId()) // <<< this
        .collect(Collectors.toList());
另一答案

它比你尝试的更简单。由于每个Entity包含一个InnerEnity,其中包含一个long标识符,您只需要一个简单的map

List<Long> innerEnityIds = 
    listOfEnity.stream()
               .map(sys -> sys.getData().getId())
               .collect(Collectors.toList());

以上是关于使用java 8从内部对象中查找实体列表中所有ID的列表的方法的主要内容,如果未能解决你的问题,请参考以下文章

使用 Java 8 流在 LocalDate 属性的对象列表中查找最近的日期

Java 8 Stream 按键过滤对象列表。排除列表中的键并获取字符串

从内存位置的哈希查找中删除列表中的项目?

从 Sharepoint 列表中获取所有项目,包括使用 CSOM 的查找值

休眠从对象中延迟获取嵌套列表

Android Room Persistence Library - 如何查找 ID 列表中包含 ID 的实体?