String[] arr1 = new String[]{"003test1001", "反面孔"}; String[] arr2 = new String[]{"003test1001", "反面孔"}; String[] arr3 = new String[]{"003test1001", "反面孔"}; String[] arr4 = new String[]{"003test1002", "反面孔"}; String[] arr5 = new String[]{"003test1002", "正面孔"}; String[] arr6 = new String[]{"003test1003", "正面孔"}; List<String[]> list1 = new ArrayList<>(); list1.add(arr1); list1.add(arr2); list1.add(arr3); list1.add(arr4); list1.add(arr5); list1.add(arr6); List<String[]> list2 = new ArrayList<>(); 用Java写一个,把相同值得数组存进list2
时间: 2024-01-06 14:03:38 浏览: 36
可以通过遍历list1中的元素,使用一个Set来存储已经出现过的第一个元素的值,如果当前元素的第一个值已经在Set中出现过,则将当前元素加入到list2中与之前相同的元素所在的数组中,否则将当前元素作为新的数组加入到list2中。具体代码如下:
```
List<String[]> list2 = new ArrayList<>();
Set<String> set = new HashSet<>();
for (String[] arr : list1) {
if (set.contains(arr[0])) {
// 在list2中寻找第一个元素与arr[0]相同的数组
for (String[] arr2 : list2) {
if (arr2[0].equals(arr[0])) {
arr2[1] += "," + arr[1];
break;
}
}
} else {
set.add(arr[0]);
list2.add(arr);
}
}
```
上述代码中,如果需要保证list2中的数组按照第一个元素的值升序排列,可以在遍历结束后使用Collections.sort方法进行排序:
```
Collections.sort(list2, new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
return o1[0].compareTo(o2[0]);
}
});
```