私は単純なListを注文しています。エントリの存在に基づいてサブリストを生成するラムダ式
A = ["a","b","c","d","e"];
基準に基づいてリストのサブセットを生成する必要があります。要素E
が配列内に存在する場合は、要素E
の後のリスト内のすべての要素を返します。そうでない場合はnull
を返します。これは同等のラムダ式で行うことができます
int index = A.indexOf("e");
List<String> subList = A.subList(index, A.size());
:
通常、私のようなこの何かをしたいですか?
注文されるリストと何が関係していますか?それでは、コードが行く限り、 'index> = 0'というチェックを含める必要はありませんか?また、サブリストの変数名を指定する必要があります。最後に、 'subList'の第2引数は排他的です。したがって、最後の要素を切り捨てるのを避けるために' A.size() - 1'の代わりに 'A.size()'を渡すべきです。 –
質問にはそのメリットがあると思います。それは、私が過去にやったことのないステートフルな述語で遊ぶ機会を私に与えました。 – GuiSim
事は、あなたは普通にやっていますが、それでも最高の解決策です。リストがソートされている場合は、代わりに 'int index = Collections.binarySearch(A、" e ");を使うことができます。それから、 'List subList = index <0? null:A.subList(インデックス、A.size()); '。ストリームはバイナリ検索も 'subList'でもなく、新しい' List'にまとめることは 'subList'を得ることと同じではありません。 –
Holger