2017-08-18 5 views
-1

arraylistの重複要素の数を調べて重複する要素をandoridの異なるtextviewsに追加する方法。arraylistの重複要素の数を見つけてdupplicate要素を別のtextviewsに追加する方法

私はTextViewにするために追加する必要がありますどのように多くの重複値現在のArrayList 2)重複する値の数の重複要素 1)と25個の要素が含まれている3異なるのTextViewと単一のArrayListを持っています。

+0

いくつかのJavaコードを書き込もうとします –

+0

ハッシュマップを使用して、ハッシュマップに値を数として保存してみてください –

答えて

0

Collections.frequencyは、リスト内のオブジェクトの出現を示します。

もう1つのオプションは並べ替えてから繰り返し、array[i+1] == array[i]の場合は重複する値の数を増やすことです。

この場合の要素がプリミティブ型でない場合は、オペレータに過負荷を忘れないようにしてください。

サンプル実装:

void countOcc(int []arr) { 
    Set<Integer> uniques = new LinkedHashSet<Integer>(); 
    for(int x : arr) { 
     uniques.add(x); 
    } 

    for(int y : uniques) { 
     int totalOcc = Collections.frequency(Arrays.asList(arr), y); 
     //gives total occurences for each unique element in the array 
    } 
} 
+0

詳細を教えてください。 – Jonaswg

+0

ありがとうございます。私のarraylist配列インフォメーション33です:[5,1,5,2,2,2,2,2,2,5,3,2,3,3,4,4,2,2,2,2 、2,2,2,2,2]である。このarraylistでは、私は2、3、5の個数を表示したいと思っています。そして、総数はtextviewで表示されます...これは私のコードです。セット一意=新しいHashSet (myList); for(整数キー:ユニーク){ Log.i( "checkarryinfo"、 "+ key +": "+ Collections.frequency(myList、key)) } ..... – kishore

+0

新しい編集を参照してください – Jonaswg

0
ArrayListのトラバース

とのArrayList内の各要素の周波数を見つけます。

ハッシュマップを使用すると、要素の頻度を格納するパフォーマンスが向上します。

ゼロに初期カウントします。任意の要素の周波数が1より大きい場合、カウントをインクリメントします。最後にカウントを返します。

0

擬似コード:

dup = 0 
pos = [] 
for i from 0 to arr.len -1 do 
    for c from i + 1 to arr.len -1 do 
    if pos.has(c) then 
     break 
    fi 
    if i == c then 
     dup++ 
     pos.add(c) 
    fi 
    end 
end 

残りはあなた次第です。多くの最適化を行うこともできます。

関連する問題