我认为我有一个相当简单的问题,但我无法弄清楚我应该怎么做。我创建了一个多个arraylist,我想从数组中存储一些数据。 我想检查哪些条目是相同的。
例如,如果array [0] = array [5] = array [8]但是array [1]不等于任何条目,而array [2] = array [3]
我想让arraylist看起来像
array2 [0] | array2 [5] | array2 [8]
array2 [2] | ARRAY2 [3]
List<String> dup_non = new ArrayList<String>(), dn = new ArrayList <String>();
for (int m = 0; m < array.length ; m++)
{
for(int o = m + 1; o < array.length; o++)
{
if (array[m].equals(array[o] && m!=o)){
dup_non.add(array2[m])
dn.add(array2[m],array2[o])
}
else { ....
}
}
}
这个代码正是我或多或少的想法,因为我的array2有独特的元素,但它不正确。这是正确的,因为array2不是整数数组。
如果您有任何想法,我将不胜感激,如果您能分享它。
问候。
答案 0 :(得分:3)
Please check following program for your requirement
I have created HashMap where Key as the your values that will duplicate and ArrayList as List of value duplicated
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class Dog {
public static void main(String[] args) {
Map<Integer,List<Integer>> hashMap=new HashMap<Integer,List<Integer>>();
int array[]={1,1,1,2,2,2,4,3,3,3};
for (int m = 0; m < array.length ; m++) {
System.out.print(array[m]);
List<Integer> dup=(List<Integer>)hashMap.get(array[m]);
if(dup==null){
dup=new ArrayList<Integer>();
hashMap.put(array[m],dup);
dup.add(array[m]);
}else{
dup.add(array[m]);
}
}
Set<Entry<Integer, List<Integer>>> keys = hashMap.entrySet();
for (Iterator iterator = keys.iterator(); iterator.hasNext();) {
Entry<Integer, List<Integer>> entry = (Entry<Integer, List<Integer>>) iterator.next();
List<Integer> arrayList = entry.getValue();
if(arrayList.size()==1)
hashMap.put(entry.getKey(), null);
}
System.out.print(hashMap.get(1));
System.out.print(hashMap.get(2));
System.out.print(hashMap.get(3));
System.out.print(hashMap.get(4));
}
}