-2

簡単な質問だと思いますが、どうしたらいいのかわかりません。配列からのデータを格納する複数の配列リストを1つ作成しました。どのエントリが同じかを確認したい。

たとえば、array [0] = array [5] = array [8]であるが、array [1]がどのエントリとも等しくなく、array [2] =array[3]の場合

配列リストを次のようにしたいと思います

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は整数の配列ではないため、これは正しいです。

何かアイデアがありましたら、共有していただければ幸いです。

よろしく。

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 に答える