java list 怎么有序的将相邻的相同值分组。
在Java中,你可以使用循环遍历List,然后利用临时变量来跟踪相邻的相同值。一旦发现不同的值,就将当前的相同值组成一个新的子列表,并存入结果列表中。以下是一个示例代码:
public static List<List> groupAdjacent(List nums) {
List<List> result = new ArrayList<>();
List group = new ArrayList<>();
for (int i = 0; i < nums.size(); i++) {
int currentValue = nums.get(i);
group.add(currentValue);
// 如果下一个元素与当前元素不同,或者已经是最后一个元素
if (i + 1 == nums.size() || nums.get(i + 1) != currentValue) {
result.add(new ArrayList<>(group));
group.clear();
}
}
return result;
}
public static void main(String[] args) {
List<Integer> nums = Arrays.asList(1, 1, 2, 2, 3, 3, 4, 5, 5, 5,1,2,1);
List<List<Integer>> groups = groupAdjacent(nums);
for (List<Integer> group : groups) {
System.out.println(group);
}
}