二枚舌でソートされた配列からそれを作成するときにソートされていないセットの取得

サミット・シン:

私はセットにそれぞれの値を加算しています、いくつかの重複する値でソートされた配列を取っていますし、単に二枚舌を削除します。私は、ソートされた配列からセットを作成していたように、なぜ私は、ソートセットを得ていないのですか?

ここに私のコードは次のとおりです。

Set<Integer> set = new HashSet<Integer>();

    for(int score: scores) 
        if(!(set.contains(score)))
            set.add(score);

    System.out.println(set);

スコアの谷があります 100 100 50 40 40 20 10

予想される出力: [100, 50, 40, 20, 10]

実際の出力: [50, 100, 20, 40, 10]

TrishulシンChoudharyさん:

私はあなたがやっている参照してif(!(set.contains(score)))この比較を。なぜリストのために行きませんか?リストは、挿入秩序を維持します。

int scores[]= {100,100,50,40,40,20,10};
        List<Integer> list=new ArrayList<Integer>();

        for(int score: scores) 
            if(!(list.contains(score)))
                list.add(score);

        System.out.println(list);
    }

出力::

[100, 50, 40, 20, 10]

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=27545&siteId=1