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
メソッドを使用して setP
と setQ
が等しいかどうかを判定しています。equals
メソッドはセットの要素が等しいかどうかを比較します。この例では、順序が異なっていても要素が同じであるため、セットは等しいと判定されます。