2017-05-29 3 views
0

多くのトークンリクエスタを含むリストがありますが、IDは一意であり、フィルタはというオブジェクトを返します。Javaストリームは特定のクラスを返します

tokenRequestorList.stream().filter(tr -> tr.getId() 
     .equals(tokenRequestor.getId())).collect(Collectors.toList()); 

どのように私はTokenRequestorを返すようにフィルタリングすることができます:

for (TokenRequestor requestor : tokenRequestorList) { 
    if (requestor.getId().equals(tokenRequestor.getId())) { 
     System.out.println("This object is unique!"); 
    } 
} 

は、私は、Java 8でこのコードを書いてみ?このリストには1つの要素が含まれます。

例えば:

TokenRequestor myObject = tokenRequestorList.stream() 
     .filter(tr -> tr.getId().equals(tokenRequestor.getId()))....; 
+2

[findFirst](https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#findFirst--)!? – luk2302

+0

何もない場合はどうすればいいですか? – shmosel

+0

私はフィルタ(...)の代わりにfindFirst(...)を使用したいと思います。 –

答えて

3
tokenRequestorList.stream() 
    .filter(tr -> tr.getId().equals(tokenRequestor.getId())) 
    .findAny() 
    .orElse(null); 

これは、(あなたのケースで、それはユニークになります)、フィルタに一致するTokenRequestorインスタンスを返します、またはnullは何もフィルタに一致していないです。

関連する問題