我想将LinkedHashSet转换为2D整数数组。
LinkedHashSet
是使用array[n][3]
和Set
从已有的2D整数Arrays.asList()
构建的,删除了重复项。
现在,如果是[ [10, 14, -99], [10, 99, -14], [14, 99, -10] [null] ]
是LinkedHashSet
我想要
first[n][2]={ {10, 14}, {10, 99}, {14, 99}}
或
second[n][1]={ {-99}, {-14}, {-10} }
即。 break LinkedHashSet
(其中每个节点包含3个整数作为info字段)为两个大小为[n][2]
和[n][1]
的整数数组,如上例所示。
我想要一种有效且简单的方法在java中执行此操作。
答案 0 :(得分:0)
我不认为java有任何内置方法将HashSet转换为2D数组。所以据我所知,你必须通过迭代HashSet来做到这一点。
答案 1 :(得分:0)
我自己解决了这个问题,代码如下。
Let us given LinkedHashSet as Set<Set<Integer>> r the format is as given above;
首先转换大小为[r.size] [3]的二维数组ar;然后执行以下代码
int i=0;
for(Set<Integer> set:r)
ar[i++] = s.toArray(new Integer[3])
Then store this ar[n][3] value into two separate array First[n][2] and Second[n][2] using looping.
答案 2 :(得分:-1)
我能想到的唯一方法是 使用临时字符串变量来存储打印的集合,删除[,] 然后将其存储到数组中,这被视为效率低下但工作正常。