Set interface takes you to learn advanced features of Java language
【本プログラムの目的】
このセクションでは、Set インターフェイスの継承関係と特徴を紹介し、よく使われる 2 つのサブクラス(HashSet と TreeSet)の使用方法を解説します。
Set インターフェイス
Set コレクションの最大の特徴は、重複要素を保存できないことです。これも Collection のサブインターフェイスです。
JDK 1.9 より前、Set コレクションと Collection コレクションの定義に違いはありませんでした。Set は Collection インターフェイスで提供されるメソッドをそのまま使用して操作します。ただし、JDK 1.9 以降、Set コレクションにも List コレクションと同様に一部の静的メソッドが追加されました。Set コレクションは以下のように定義されています。
public interface Set extends Collection
ここで注意すべき点は、Set コレクションは List コレクションのように多くの新しいメソッドを追加していないため、List コレクションで提供される get() メソッドは使用できず、指定したインデックスのデータを取得できないことです。Set インターフェイスの継承関係は以下のとおりです。
JDK 1.9 以降、Set コレクションにも List コレクションと同様に of() 静的メソッドが追加されました。次に、このメソッドを使って Set コレクションの特徴を確認します。
例:Set コレクションの特徴の確認
of() メソッドを使用する際、コレクション内に重複要素が含まれると、直接例外がスローされます。これは、従来の Set コレクションが重複要素を保存できないことと一致していますが、例外がスローされる点が異なります。
Set コレクションの通常の使用方法では、サブクラスによるインスタンス化が必要なため、Set インターフェイスにはよく使われる 2 つのサブクラスがあります。HashSet と TreeSet です。
HashSet サブクラス
HashSet は Set インターフェイスで最もよく使われるサブクラスです。その最大の特徴は、格納されるデータが順序付けされていないことです。HashSet サブクラスの継承関係は以下のとおりです。
実行結果から、HashSet の動作特徴を確認できます。重複要素を保存できないこと(Set インターフェイスで定義)と、もう一つの特徴として、HashSet に格納されるデータが順序付けされていないことです。
TreeSet サブクラス
Set インターフェイスのもう一つのサブインターフェイスが TreeSet です。HashSet との最大の違いは、TreeSet コレクションに格納されるデータが順序付けされていることです。まず、TreeSet クラスの定義を確認しましょう。
TreeSet を使用してデータを保存すると、すべてのデータは自動的に昇順でソートされます。
このセクションでは、Set インターフェイスの継承関係と特徴を紹介し、よく使われる 2 つのサブクラス(HashSet と TreeSet)の使用方法を解説します。
Set インターフェイス
Set コレクションの最大の特徴は、重複要素を保存できないことです。これも Collection のサブインターフェイスです。
JDK 1.9 より前、Set コレクションと Collection コレクションの定義に違いはありませんでした。Set は Collection インターフェイスで提供されるメソッドをそのまま使用して操作します。ただし、JDK 1.9 以降、Set コレクションにも List コレクションと同様に一部の静的メソッドが追加されました。Set コレクションは以下のように定義されています。
public interface Set
ここで注意すべき点は、Set コレクションは List コレクションのように多くの新しいメソッドを追加していないため、List コレクションで提供される get() メソッドは使用できず、指定したインデックスのデータを取得できないことです。Set インターフェイスの継承関係は以下のとおりです。
JDK 1.9 以降、Set コレクションにも List コレクションと同様に of() 静的メソッドが追加されました。次に、このメソッドを使って Set コレクションの特徴を確認します。
例:Set コレクションの特徴の確認
of() メソッドを使用する際、コレクション内に重複要素が含まれると、直接例外がスローされます。これは、従来の Set コレクションが重複要素を保存できないことと一致していますが、例外がスローされる点が異なります。
Set コレクションの通常の使用方法では、サブクラスによるインスタンス化が必要なため、Set インターフェイスにはよく使われる 2 つのサブクラスがあります。HashSet と TreeSet です。
HashSet サブクラス
HashSet は Set インターフェイスで最もよく使われるサブクラスです。その最大の特徴は、格納されるデータが順序付けされていないことです。HashSet サブクラスの継承関係は以下のとおりです。
実行結果から、HashSet の動作特徴を確認できます。重複要素を保存できないこと(Set インターフェイスで定義)と、もう一つの特徴として、HashSet に格納されるデータが順序付けされていないことです。
TreeSet サブクラス
Set インターフェイスのもう一つのサブインターフェイスが TreeSet です。HashSet との最大の違いは、TreeSet コレクションに格納されるデータが順序付けされていることです。まず、TreeSet クラスの定義を確認しましょう。
TreeSet を使用してデータを保存すると、すべてのデータは自動的に昇順でソートされます。
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
