【发布时间】:2020-09-04 13:01:46
【问题描述】:
考虑一个长值列表[1,2,3,4,2,3,6,3,7,3]。我需要实现 java 程序来根据值拆分列表。假设value = 3。每当我找到value = 3。我需要以[[1,2] ,[3],[4,2],[3],[6],[3],[7],[3]] 的方式拆分列表。
我写了下面的代码来实现问题陈述:
public class Solution {
public static void main(String args[]) {
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(2);
list.add(3);
list.add(6);
list.add(3);
list.add(7);
System.out.println(list);
int val = 3;
List<List<Integer>> finalList = new ArrayList<>();
List<Integer> tempList = new ArrayList<>();
for (int i : list) {
if (i != val) {
tempList.add(i);
} else {
finalList.add(new ArrayList<>(tempList));
finalList.add(Arrays.asList(i));
tempList.clear();
}
}
System.out.println(finalList);
}
}
输出: [[1, 2], [3], [4, 2], [3], [6], [3]]
预期输出: [[1,2] ,[3],[4,2],[3],[6],[3],[7]]
最后一个数字 [7] 未添加到 finalList。任何建议!
【问题讨论】:
-
首先,您没有将这些值
[1,2,3,4,2,3,6,3,7,3]添加到列表中。请保持您的输入与代码中的输入一致。 -
在你的 for 循环之后,临时列表包含 7。所以你也必须在这里添加到最终列表。
标签: java list algorithm arraylist