2016-07-14 5 views
0

KeyValueAccess kva = KeyValueAccessFactoryForTestConfig.getConnection(); リスト> keySets = kva.getDistinctPartitionKeys(SavepointDto.class、Integer.valueOf(50));IndexOf/sublist()メソッドを使用せずに、指定した位置からJavaリストのすべてのアイテムを以前のものすべてを無視して取得するにはどうすればよいですか?

List<Pair<String, String>> pairs = 
      keySets.stream() 
        .sorted((k1, k2) -> SavepointUtils.compareMinitues(k1.get(1), k2.get(1))) 
        .sorted((k1, k2) -> k1.get(0).compareTo(k2.get(1))) 
        .map(keySet -> Pair.of(keySet.get(0), keySet.get(1))) 
        .collect(Collectors.toList()); 

    System.out.println("\n"); 

    int index = pairs.indexOf("2016:6:29:13:27"); 

    for (int i = index; i < pairs.size(); i++) { 
     System.out.println(pairs.get(i)); 
    } 

} 

私はArrayIndexOutofBoundExceptionを取得しています、リストから任意の特定の要素のインデックスを取得しようとしているとき、私は私の場合には第一の要素は、日付(例:2016:6:29:13:27)である(コード上記参照)List<Pair<String, String>>を抱えていますStringタイプです。 indexOfまたはsubstring()メソッドを使用することはできません。

以前の要素を無視して特定の位置からリストのすべての要素を取得する他の方法はありますか?

+0

使用list.sublist(int型fromIndexの、INTたtoIndex) – Jeet

+4

ヒント:特にためにコレクションライブラリ... javadocを消化するのに時間がかかる。役に立つ操作がどれくらいあるかを知ることは驚きです。そしてあなたは知っている:すべてが適切に文書化されている! – GhostCat

+0

私は特定のペアのインデックスを取得しようとしているときにList >を持っています。ArrayarrayIndexoutofboundsExceptionを取得していますが、インデックスサブリストメソッドを知らないと役に立たないです。 –

答えて

0

あなたはそのために(skip最初の2つの要素)のストリームを使用することができます。

Arrays.asList("a","b","c","d","e").stream() 
    .skip(2) 
    .collect(Collectors.toList()) 

またはsubListを使用します。

List<String> list = Arrays.asList("a","b","c","d","e"); 
    list.subList(2, list.size()); 
+0

既にJava 8ストリームのskip()メソッドで試してみましたが、私の場合は期待した結果が得られません。問題は私が直面している問題です。私はList >を試しています特定のペアのインデックスを取得するArrayarrayIndexoutofboundsExceptionを取得しています –

+0

@VinayThakreスキップの結果はどのようにエラーになりますか?あなたの質問を 'Pair'の例で更新するか、より具体的な別の質問をしてください。あなたの現在のものは上記の答えのコードで動作します。 –

+0

メソッドをスキップしてもエラーは発生しません。実行中の結果は期待しています。 –

関連する問題