-2

我想我有一个相当简单的问题,但我不知道我应该怎么做。我创建了一个多重数组列表,我想在其中存储数组中的一些数据。我想检查哪些条目是相同的。

例如,如果 array[0] = array[5] = array[8] 但 array[1] 不等于任何条目,并且 array[2] = array[3]

我希望数组列表看起来像

数组2[0] | 数组2[5] | 数组2[8]

数组2[2] | 数组2[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 不是整数数组。

如果您有任何想法,如果您能分享,我将不胜感激。

问候。

4

1 回答 1

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));
    }
}
于 2013-01-31T14:25:17.837 回答