English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このチュートリアルでは、JavaのSetインターフェース及其メソッドについて学びます。
Java CollectionsフレームワークのSetインターフェースは、Javaの数学的な集合機能を提供します。これはCollectionインターフェースを継承しています。
Listインターフェースとは異なり、Setコレクションは重複の要素を含むことができません。
Setはインターフェースであるため、オブジェクトを作成することができません。
Setインターフェースの機能を使用するために、以下のクラスを使用できます:
これらのクラスはCollectionsフレームワークで定義され、Setインターフェースを実装しています。
このSetインターフェースはこれらのサブインターフェースも拡張しています:
JavaでSetを使用するには、java.util.Setパッケージをインポートする必要があります。
//HashSetを使用してSetを実装 Set<String> animals = new HashSet<>();
ここでは、Setインターフェースを実装するSetオブジェクト「animals」を作成しました。Setインターフェースを実装するためにHashSetクラスを使用しています。
SetインターフェースはCollectionインターフェースのすべてのメソッドを含んでいます。なぜなら、CollectionはSetのスーパーオブジェクトであるからです。
Setインターフェースでは、Collectionインターフェースの一部の常用メソッドも提供されています:
add() - 指定された要素を集合に追加します
addAll() - 指定された集合のすべての要素を集合に追加します
iterator() -迭代器を返します。この迭代器を使用して、集合内の要素を順序でアクセスできます
remove() - 集合から指定された要素を削除します
removeAll() - 指定された別の集合に存在するすべての要素を集合から削除します
keepAll() -指定された別の集合にまだ存在するすべての要素を集合内に保持します
clear() - 集合からすべての要素を削除します
size() - 集合の長さ(要素数)を返します
toArray() - 集合内のすべての要素を含む配列を返します
contains() - 指定された要素を含んでいる場合、trueを返します
containsAll() - 指定された集合のすべての要素を含んでいる場合、trueを返します
hashCode() -ハッシュコード値(集合内の要素のアドレス)を返します
Java Setインターフェースは、並集合、交集合、部分集合などの基本的な数学集合演算を実行できます
並集合 - 二つの集合xとyの並集合を取得するには、x.addAll(y)を使用できます
交集合 - 二つの集合xとyの交集合を取得するには、x.retainAll(y)を使用できます
部分集合 - xがyの部分集合であるかを確認するには、y.containsAll(x)を使用できます
1.HashSetクラスを実装
import java.util.Set; import java.util.HashSet; class Main { public static void main(String[] args) { //HashSetクラスを使用して集合を作成 Set<Integer> set1 = new HashSet<>(); //要素をsetに追加1 set1.add(2); set1.add(3); System.out.println("Set1: " + set1); //HashSetクラスを使用して別の集合を作成 Set<Integer> set2 = new HashSet<>(); //要素を追加 set2.add(1); set2.add(2); System.out.println("Set2: " + set2); //二つの集合の並集合 set2.addAll(set1); System.out.println("並集合は: " + set2); } }
出力結果
Set1: [2, 3] Set2: [1, 2] 並集合は: [1, 2, 3]
HashSetについてもっと詳しく知りたい場合は、以下を訪問してくださいJava HashSet。
2.TreeSetクラスを実装
import java.util.Set; import java.util.TreeSet; import java.util.Iterator; class Main { public static void main(String[] args) { //TreeSetクラスを使用して集合を作成 Set<Integer> numbers = new TreeSet<>(); // 要素をset集合に追加 numbers.add(2); numbers.add(3); numbers.add(1); System.out.println("TreeSet: " + numbers); //要素にiterator()を使用してアクセス System.out.print("使用iterator()を使用して要素にアクセスする: "); Iterator<Integer> iterate = numbers.iterator(); while(iterate.hasNext()) { System.out.print(iterate.next()); System.out.print(", "); } } }
出力結果
TreeSet: [1, 2, 3] iterator()を使用して要素にアクセスする: 1, 2, 3,
TreeSet の詳細情報を知りたい場合は、以下のサイトにアクセスしてくださいJava TreeSet。
今では Set が何かを知っています。次のチュートリアルでは、EnumSet、HashSet、LinkedHashSet、TreeSetなどのクラスでその実装を見ていきます。