簡體   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