部分集合と超集合
CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 33/59。
部分集合は、すべての要素が別の集合に含まれる集合です。上位集合は、別の集合のすべての要素を含む集合です。
まず、2つの HashSet を作成します:
HashSet<String> setA = new HashSet<>();
setA.add("apple");
setA.add("banana");
HashSet<String> setB = new HashSet<>();
setB.add("apple");
setB.add("banana");
setB.add("cherry");containsAll() メソッドを使用してください:
boolean isSubset = setB.containsAll(setA);
System.out.println("setA is a subset of setB: " + isSubset);
// Output: setA is a subset of setB: true同様に、setB は setA の上位集合です。setA のすべての要素を含んでいるためです。
チャレンジ
簡単文字列の2つの HashSet を入力として受け取る、<strong>checkSubsetSuperset</strong> という名前のメソッドを作成してください:
- setA と setB
このメソッドは以下を行うべきです:
containsAll()を使用して setA が setB の部分集合であるかをチェックし、以下を出力してください:setA is a subset of setB: <true/false>setB が setA の上位集合であるかをチェックしてください(これは同じチェックです)、以下を出力してください:
setB is a superset of setA: <true/false>
チートシート
部分集合とは、すべての要素が別の集合に含まれている集合です。上位集合とは、別の集合のすべての要素を含む集合です。
containsAll() メソッドを使用して、一方の集合が他方の集合の部分集合かどうかをチェックします:
HashSet<String> setA = new HashSet<>();
setA.add("apple");
setA.add("banana");
HashSet<String> setB = new HashSet<>();
setB.add("apple");
setB.add("banana");
setB.add("cherry");
boolean isSubset = setB.containsAll(setA);
System.out.println("setA is a subset of setB: " + isSubset);
// 出力: setA is a subset of setB: truesetA が setB の部分集合である場合、setB は setA の上位集合です。
自分で試してみよう
import java.util.HashSet;
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
public class Main {
public static void checkSubsetSuperset(HashSet<String> setA, HashSet<String> setB) {
// ここにコードを記述してください
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// setA用のJSON文字列を読み取る(例:["apple","banana"])
String setAString = scanner.nextLine();
// setB用のJSON文字列を読み取る(例:["apple","banana","cherry"])
String setBString = scanner.nextLine();
Type setType = new TypeToken<HashSet<String>>(){}.getType();
HashSet<String> setA = new Gson().fromJson(setAString, setType);
HashSet<String> setB = new Gson().fromJson(setBString, setType);
checkSubsetSuperset(setA, setB);
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。