繁体   English   中英

java 8 stream groupBy和创建新对象

[英]java 8 stream groupBy and new object creation

假设我有两个类C1和C2,其中C2由C1的构造函数使用:

public class C1
{
    public C1( C2 o2 ){ ... }

    public String getProperty()
    {
        String result;
        ...
        return result;
    }
}

现在,我有了一个C2对象列表(列表列表),我想使用从流式传输的C2对象创建的C1的getProperty()上的条件来流式传输和过滤。

有没有办法用流来做到这一点?

List<C2> list = ...
List<C2> result = list.stream().filter( XXXX )

我猜我应该有XXXX,该XXXX使用流中的C2对象创建一个C1对象并比较其getProperty()(例如,“ value” .equals(o2.getProperty()))

这有可能吗?

您将丢弃这些实例,但是请确保

list.stream().filter(c2 -> "value".equals(new C1(c2).getProperty())).collect(toList());

这似乎有些倒退。 也许此属性的逻辑应放在C2类或某些实用程序类(静态方法)或为给定C2实例提供属性的实例中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM