我有一个像[121,122,121,122,123,121,122]
这样的数组中的元素列表
输出应该是所有重复元素的数组,如
[121,121,121]
[122,122,122]
[123]
我只能使用 Java 1.4。这将是我们在此版本中的最后一个版本,该应用程序在仅支持1.4的SAP J2EE服务器上运行。
从@Subhrajyoti Majumder的提示中查看完整的代码
尺寸打印9但是当我迭代它打印太多.. 根据交货编号
输出结果如下[a1,a2]
[a3,a4]
[a6]
[a7,a8,a9,a10]
提前致谢。
答案 0 :(得分:3)
无论您的解决方案是否正确理解您的问题,您的输入都将是一个数组(包含重复项),输出将是重复数组的列表。我对这个Map
问题有一个简单的方法,其中Integer
是关键,List
是值。在下面写了一个小片段(支持java 1.4)。
Map map = new HashMap();
int[] array = {121,122,121,122,123,121,122};
for(int i=0;i<array.length;i++){
if(map.get(array[i])==null){ // no entry available
List list = new ArrayList();
list.add(array[i]);
map.put(array[i],list);
}else // entry is already available
map.get(array[i]).add(array[i]);
}
我知道你对java版本有约束力,但谷歌collection library - guava的MultiSet可能会更容易。 Library适用于Java 1.6 + 。
Snippet -
Multiset<Inetger> multiSet = HashMultiset.create();
int[] array = {121,122,121,122,123,121,122};
multiSet.addAll(Arrays.asList(array));
for (Inetger i : multiSet.elementSet()) {
System.out.println(i + ": " + multiSet.count(i));
}