将一维列表中的数据附加到多维列表中



我有一个列表如下:

List<String> responseList = new ArrayList<>();
responseList.add("test1")
responseList.add("test2")
responseList.add("test3")
responseList.add("test4")

我需要将上面列表中的数据添加到下面的列表中,其中第0行应该具有值test1和test2。第1行应具有测试3和测试4

List<List<String>> ActualEmployeeList  = new ArrayList<>();

使用简单的for循环:

List<List<String>> ActualEmployeeList = new ArrayList();
for (int i = 0; i < responseList.size()-1; i += 2) {
ActualEmployeeList.add(responseList.subList(i, i+2));
}

可能的流解决方案。不确定这是最优的:

List<List<String>> ActualEmployeeList = IntStream.range(0, responseList.size()-1)
.filter(x -> x % 2 == 0)
.mapToObj(i -> responseList.subList(i, i+2))
.collect(Collectors.toList());

您可以这样做。关键是,您并不总是需要在for循环中执行i++操作。此外,我认为单独创建列表是有意义的,而不仅仅是将所有内容添加到响应列表中。

List<String> responseList = new ArrayList<>();
responseList.add("test1");
responseList.add("test2");
responseList.add("test3");
responseList.add("test4");
List<List<String>> actualEmployeeList = new ArrayList<>();
for(int i = 0; i < responseList.size(); i+=2) {
actualEmployeeList.add(responseList.subList(i, i+2));
}

最新更新