-1

重複を含む可能性のあるリスト (以下のようなもの) を考えると、一意の要素の数を数えることができる必要があります。

List<String> list = new ArrayList<String>();
list.add("M1");list.add("M1");
list.add("M2");list.add("M2");
list.add("M3");list.add("M3");

JavaのSetを使えばできると思います。リスト項目をセットにコピーするにはどうすればよいですか? また、セットからカウントを取得するにはどうすればよいですか?

4

2 に答える 2

3
...
        List<String> list = new ArrayList<String>();
        list.add("M1");list.add("M1");
        list.add("M2");list.add("M2");
        list.add("M3");list.add("M3");

        HashSet hashSet = new HashSet();
        hashSet.addAll(list);
        System.out.println(hashSet.size()); 
...

それは与えます -

3
于 2013-08-06T22:05:09.263 に答える
3

質問を正しく理解していることを願っています。Java のSetクラスを使用して、ArrayList 内の一意のエントリの数をカウントしようとしているようです。その場合は、次のことを行う必要があります。

  • セットを作成します (具象クラスを使用する必要があります。例では HashSet を使用します)
  • ArrayList を反復処理し、それらの項目 (この場合は文字列) をセットに入れます。(addAll メソッドを使用します)
  • セットのサイズを取得する

例:

List<String> list = new ArrayList<String>();
Set<String> set = new HashSet<String>();
list.add("M1");
list.add("M1");
list.add("M2");
list.add("M3");

set.addAll(list);
System.out.println(set.size());

編集: このソリューションは (実用的な目的で) Alexey のソリューションと同じです。Alexey は、私がソリューションを書いているときに投稿しました。

于 2013-08-06T22:06:37.883 に答える