2016-02-06 47 views
0

根据原始矩阵的公共值,将2-D矩阵转换为2D阵列/列表/矢量时遇到问题。按矩阵中的常见属性对值进行分组

例如我有一个订购的字符串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

你需要使用数组吗?有像地图这样的数据结构可以适应这种情况 – msrd0

+0

现在只看到了这一点。 是的地图帮助,我的问题的一部分谢谢! –

回答

2

尝试:

Map<String, Set<String>> res = 
    Arrays.stream(2d_array) 
     .collect(groupingBy(a -> a[0], mapping(a -> a[1], toSet()))); 

你可以,如果你发现阵列更方便本地图转换成所需的阵列。