我在根据原始矩阵的公共值将二维矩阵转换为二维阵列/列表/矢量时遇到了麻烦。
例如,我有一个有序的2d_array字符串(代码非常大),如下所示。
String [][] 2d_array = { {1922, ABC}, {1922, XPT}, {1954,ABC}, {2001, SSS}, {2001, asd}}; // this array has "N" row
我想转换/创建以下“输出”。
new_array = {{1922, ABC, XPT}, {1954, ABC}, {2001, SSS, asd}};
在这个新数组中,无论列数多长都没关系,只要它们都在相同的行中,并且具有相应的“数字”/日期/索引/等。
答案 0 :(得分:2)
尝试:
Map<String, Set<String>> res =
Arrays.stream(2d_array)
.collect(groupingBy(a -> a[0], mapping(a -> a[1], toSet())));
如果您觉得阵列更方便,可以将此地图转换为所需的数组。