Subconjuntos e Superconjuntos
Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 33 de 59.
Um subconjunto é um conjunto no qual todo elemento também está contido em outro conjunto. Um superconjunto é um conjunto que contém todos os elementos de outro conjunto.
Primeiro, crie dois HashSets:
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");Use o método containsAll():
boolean isSubset = setB.containsAll(setA);
System.out.println("setA is a subset of setB: " + isSubset);
// Output: setA is a subset of setB: trueDa mesma forma, setB é um superconjunto de setA porque contém todos os elementos de setA.
Desafio
FácilCrie um método chamado <strong>checkSubsetSuperset</strong> que recebe dois HashSets de strings como entrada:
- setA e setB
O método deve:
Verifique se setA é um subconjunto de setB usando
containsAll(), e imprima:setA is a subset of setB: <true/false>Verifique se setB é um superconjunto de setA (esta é a mesma verificação), e imprima:
setB is a superset of setA: <true/false>
Folha de consulta
Um subconjunto é um conjunto no qual todo elemento também está contido em outro conjunto. Um superconjunto é um conjunto que contém todos os elementos de outro conjunto.
Use o método containsAll() para verificar se um conjunto é um subconjunto de outro:
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);
// Output: setA is a subset of setB: trueSe setA é um subconjunto de setB, então setB é um superconjunto de setA.
Experimente você mesmo
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) {
// Escreva seu código aqui
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Leia a string JSON para setA (ex.: ["apple","banana"])
String setAString = scanner.nextLine();
// Leia a string JSON para setB (ex.: ["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);
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e Fluxo
1Arrays Multidimensionais
Básicos de Arrays 2DAcessando Elementos de Arrays 2DLoops Aninhados com Arrays 2DResumo - Arrays 2DAdição e Subtração de MatrizesArrays EscalonadosArrays 3D e AlémPadrões Comuns de Arrays 2DResumo - Tudo Sobre Arrays2HashMap Parte 1
O que é um HashMap?Declarar um HashMapAcessando ValoresVerificar se a Chave ExisteModificando DicionáriosResumo - HashMap5HashSet Parte 2
Mat. - União de HashSetsMat. - Interseção de HashSetMat. - Diferença de ConjuntosMat. - Diferença SimétricaSubconjuntos e SuperconjuntosIterando Sobre Conjuntos3HashMap Parte 2
Métodos do HashMapIterar com keySet()Iterar com entrySet()HashMap AninhadoResumo - Gerenciar ArmazémResumo - Operações do HashMap6Fluxo de Controle Avançado
Declarações RotuladasExpressão SwitchCorrespondência de PadrõesCláusulas de GuardaResumo - Fluxo de Controle9Projeto - Contador de Palavras Únicas
Entrada e Armazenamento de TextoProcessamento de Palavras