020 コレクションフレームワーク(Set) 012 解答例

import java.util.Set;
import java.util.HashSet;

public class Main {
    public static void main(String[] args) {
        // 与えられた文字列型セット setP と setQ
        Set<String> setP = new HashSet<>(Set.of("Apple", "Banana", "Orange"));
        Set<String> setQ = new HashSet<>(Set.of("Orange", "Banana", "Apple"));

        // 手順に従ってセットが等しいかどうかを判定
        boolean areSetsEqual = areEqualSets(setP, setQ);

        // 結果を表示
        if (areSetsEqual) {
            System.out.println("セット setP と setQ は等しいです。");
        } else {
            System.out.println("セット setP と setQ は等しくありません。");
        }
    }

    // セットが等しいかどうかを判定するメソッド
    private static <T> boolean areEqualSets(Set<T> set1, Set<T> set2) {
        // サイズの比較
        if (set1.size() != set2.size()) {
            return false;
        }

        // 要素の比較
        for (T element : set1) {
            if (!set2.contains(element)) {
                return false;
            }
        }

        return true;
    }
}

このコードでは、areEqualSets メソッドを使ってセットが等しいかどうかを判定しています。このメソッドでは、サイズの比較と要素の比較を明示的に行っています。

equalsメソッドを使った解答例

import java.util.Set;
import java.util.HashSet;

public class Main {
    public static void main(String[] args) {
        // 与えられた文字列型セット setP と setQ
        Set<String> setP = new HashSet<>(Set.of("Apple", "Banana", "Orange"));
        Set<String> setQ = new HashSet<>(Set.of("Orange", "Banana", "Apple"));

        // セットの等しさを判定
        boolean areSetsEqual = setP.equals(setQ);

        // 結果を表示
        if (areSetsEqual) {
            System.out.println("セット setP と setQ は等しいです。");
        } else {
            System.out.println("セット setP と setQ は等しくありません。");
        }
    }
}

このコードでは、equals メソッドを使用して setPsetQ が等しいかどうかを判定しています。equals メソッドはセットの要素が等しいかどうかを比較します。この例では、順序が異なっていても要素が同じであるため、セットは等しいと判定されます。

「020 コレクションフレームワーク」問題集リスト