2013-01-31 58 views
-2

我認爲我有一個相當簡單的問題,但我無法弄清楚我應該怎麼做。我創建了一個多重陣列列表,我想從數組中存儲一些數據。 我想檢查哪些條目是相同的。Java:在多個數組列表中存儲值

例如,如果陣列[0] =陣列[5] =陣列[8],但陣列[1]不等於任何條目,和陣列[2] =陣列[3]

我會喜歡爲陣列列表看起來像

array2 [0] | array2 [5] | array2 [8]

array2 [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 { .... 
           } 
     } 
    } 

此代碼是我想多還是少,因爲我的數組2具有獨特的元素,但它是不正確的。這是正確的,因爲array2不是一個整數數組。

如果您有任何想法,我將不勝感激,如果你能分享它。

問候。

+2

我無法弄清楚你想在這裏做什麼。在你的例子中,你引用'array'和'array2',但你定義'dup_non'和'dn'。你想檢查兩個數組的重複值嗎? – evandongen

+0

那麼,我想檢查數組是否有重複的值,並在arraylist中存儲具有唯一元素的array2。如果我迷惑了你,我很抱歉,但我正在一個更復雜的程序中工作,這就是爲什麼我試圖儘可能簡單地呈現。 –

+0

我不明白downvote。我真的試圖解釋我的問題,舉例說明。 –

回答

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)); 
    } 
} 
+0

你建議使用多哈希映射使其工作。行if(dup == null)用於檢查hashmap「row」是否爲空,對嗎? –

+0

是的你是對的,行if(dup == null)用於檢查散列映射值是否爲該特定鍵的空值。 – Ganesh

+0

唯一的問題是,如果我的數組是像int數組[] = {1,1,1,2,2,2,3,3,3,4,5,5,5};結果是1112223334555 [1,1,1] [2,2,2] [3,3,3] [4] [5,5,5],我想從hashmap [4]中省略,它沒有重複。 –

相關問題