2012-02-11 11 views
0

可能性の重複での個別の要素の数を取得します:
Java - Distinct List of Objectsソートされた配列

私は(3000個の文字列の周りの)巨大なサイズのソートされた配列をもつ、 私はANを作成する必要がありますしたがって、元の配列の異なる文字列に等しいサイズのオブジェクトの配列を作成する必要があります。

提案がありますか?

ありがとうございました

+2

がない:http://stackoverflow.com/questions/1019854/java-distinct-list-of-objectsあなたは何が必要なのですか? – Nix

+0

私は真剣に3000が巨大なサイズと見なすことができると疑う。多分それが100万人だったら... –

+0

私は3000が巨大ではないことを知っていますが、私は時間を賢明に処理することを意味しました。 – user1203861

答えて

0

数字だけでなく異なる要素が必要な場合は、Setを使用してください。

Aセットは次のとおりです。

重複要素のないコレクションです。

あなたの要素をセットに追加したまま、そのセットに含まれているものを見てください。これと同様の

何か:

public static String[] getDistinct(String[] input) { 

    Set<String> distinct = new HashSet<String>(); 
    for(String element : input) { 
     distinct.add(element); 
    } 

    return distinct.toArray(new String[0]); 
} 

使用:

String[] input = new String[] {"a", "b", "a", "c", "a", "b", "d"}; 
String[] distinct = getDistinct(input); 

for(String element : distinct) { 
    System.out.println(element); 
} 

結果:B

D

注Cその要素MAの順序yは保存されません。

は、個別の要素の数を見つけるために使用:

getDistinct(input).length 
0

私はあなたが探しているものだと思います。何か助けが必要な場合は、具体的な質問をしてください。

+0

大丈夫、私はそれを誤解しました。私は、明確な文字列を合計するために答えを調整しました。 –

+0

ありがとう、私はそれを試してみる – user1203861

0

擬似コード:

previous = Null 
sum_size = 0 

for (String current: yourarray) { 

    if (!current.equals(previous)) { 
     sum_size += current.size() 
    } 
    previous = current 
} 

sum_sizeはあなたの配列内の異なる要素の追加サイズです。

+1

彼は何個の別個のオブジェクトがあるかを数えたいと思っていません –

+0

ok、私はそれを誤解しました。私は、明確な文字列を合計するために答えを調整しました –

関連する問題