Java:在多个Arraylists中存储值

时间:2013-01-31 13:57:37

标签: java arraylist

我认为我有一个相当简单的问题,但我无法弄清楚我应该怎么做。我创建了一个多个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不是整数数组。

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

问候。

1 个答案:

答案 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));
    }
}