gpt4 book ai didi

java - 如何在Java中生成列表的所有k-sublists?

转载 作者:行者123 更新时间:2023-12-04 20:45:50 28 4
gpt4 key购买 nike

让我们考虑一下:List <String> ints = Arrays.asList("1","2","3","4","5","6")k=2 .

我们想返回以下列表 List<String> : ["12", "23", "34", "45", "56"]

优雅的解决方案呢?可以用流来做到这一点吗?

当然可以通过多种方式解决,最简单的是用嵌套列表遍历整个列表1...k .

有什么想法吗?

最佳答案

使用流:

        final List<String> ints = Arrays.asList("1", "2", "3", "4", "5", "6");
final int k = 2;
final List<String> result = IntStream.iterate(0, i -> i + 1).limit(ints.size() - k + 1)
.mapToObj(i -> ints.subList(i, i + k).stream().reduce("", (a, b) -> a + b + ""))
.collect(Collectors.toList());

System.out.println(result);3

使用 for 循环:

    List<String> result = new LinkedList<>();
for(int i = 0 ; i < ints.size() - k + 1; i++) {
StringBuilder sb = new StringBuilder();
for(int j = 0; j < k; j++) {
sb.append(ints.get(i+j));
}
result.add(sb.toString());
}

System.out.println(result);

现在自己决定;-)

关于java - 如何在Java中生成列表的所有k-sublists?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47111932/

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