如何在不使用IndexOf / sublist()方法的情况下从指定位置获取Java列表中的所有项目而忽略其之前的所有项目?

时间:2016-07-14 11:51:06

标签: java

KeyValueAccess kva = KeyValueAccessFactoryForTestConfig.getConnection();         列表> keySets = kva.getDistinctPartitionKeys(SavepointDto.class,Integer.valueOf(50));

    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));
    }

}

我正在尝试从列表中获取任何特定元素的索引List<Pair<String, String>>我得到ArrayIndexOutofBoundException(参见上面的代码)在我的情况下,第一个元素是date( 2016:6:29:13:27类型的例如:String}。  所以无法使用indexOfsubstring()方法。

是否有其他方法可以通过忽略前面的元素来从列表中获取所有元素?

1 个答案:

答案 0 :(得分: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());