gpt4 book ai didi

java - 在这种情况下我怎样才能制作子列表列表......?

转载 作者:行者123 更新时间:2023-11-30 05:59:46 25 4
gpt4 key购买 nike

假设我有一个这样的列表:

[a, b, c, d, e, f, PASS, g, h]

但我希望每当出现“PASS”一词时,就用剩余数据创建另一个列表。

像这样:

[[a, b, c, d, e, f], [g, h]]

最佳答案

这可以写成一个通用方法(我已经在我的 stackoverflow 答案中找到了这个方法,所以我想我之前在某处读过这个......我会尝试找到具体的位置):

private static <T> List<List<T>> splitBy(List<T> list, T delimiter) {

int[] indexes = IntStream.rangeClosed(-1, list.size())
.filter(i -> i == -1
|| i == list.size()
|| delimiter.equals(list.get(i))).toArray();

return IntStream.range(0, indexes.length - 1)
.mapToObj(x -> list.subList(indexes[x] + 1, indexes[x + 1]))
// or since java-11, a bit nicer:
// .filter(Predicate.not(List::isEmpty))
.filter(l -> !l.isEmpty())
.collect(Collectors.toList());
}

关于java - 在这种情况下我怎样才能制作子列表列表......?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52463340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com