導入
「参加者の一覧を作りたいが、同じ人が2回登録されても1人として数えたい」——このように 重複を許さない 集合を扱いたいときは HashSet が向いています。
説明
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
HashSet<String> visitors = new HashSet<>();
visitors.add("たろう");
visitors.add("はなこ");
visitors.add("たろう"); // 重複は無視される
System.out.println(visitors.size());
System.out.println(visitors.contains("たろう"));
visitors.remove("たろう");
System.out.println(visitors.contains("たろう"));
}
}
"たろう" を2回 add していますが、HashSet は 同じ値を2つ持てない ため、実際に入っているのは "たろう" と "はなこ" の2件だけです。.contains() や .remove() の使い方は ArrayList と同じです。
やってみよう
下のエディタで同じ値を何度も add してみて、size() が増えないことを確認しましょう。
演習
HashSet<Integer> nums を作り、1・2・2・3 を順番に追加してください(2が重複しています)。最終的な size() を表示してください。
ヒント1を見る
HashSet<Integer> nums = new HashSet<>(); を作り、nums.add(1); nums.add(2); nums.add(2); nums.add(3); とします。
ヒント2を見る
2 は重複しているので無視され、実際に入っているのは 1, 2, 3 の3件です。System.out.println(nums.size());。