[Solución] Sistema de Gestión de Canales de YouTube

GestionCanalesYoutube.java

import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class GestionCanalesYouTube {

    // Utilizamos un HashSet para almacenar los nombres de los canales de YouTube.
    private Set<String> canales;
    
    // Utilizamos un HashMap para asociar cada canal con una lista de videos populares.
    private Map<String, List<String>> videosPopulares;

    // Constructor para inicializar las colecciones.
    public GestionCanalesYouTube() {
        this.canales = new HashSet<>();
        this.videosPopulares = new HashMap<>();
    }

    // Método para agregar un canal a la colección.
    public void agregarCanal(String nombreCanal) {
        // Solo añade el canal si aún no existe.
        if (nombreCanal != null && !nombreCanal.isEmpty() && canales.add(nombreCanal)) {
            System.out.println("Canal agregado: " + nombreCanal);
        } else {
            System.out.println("El canal ya existe o es inválido.");
        }
    }

    // Método para eliminar un canal de la colección.
    public void eliminarCanal(String nombreCanal) {
        // Elimina el canal si existe.
        if (canales.remove(nombreCanal)) {
            // También elimina los videos asociados a ese canal.
            videosPopulares.remove(nombreCanal);
            System.out.println("Canal eliminado: " + nombreCanal);
        } else {
            System.out.println("El canal no existe o es inválido.");
        }
    }

    // Método para agregar un video a un canal específico.
    public void agregarVideoACanal(String nombreCanal, String tituloVideo) {
        // Verifica si el canal existe.
        if (canales.contains(nombreCanal) && tituloVideo != null && !tituloVideo.isEmpty()) {
            // Añade el video al canal. Si el canal no tiene videos, crea una nueva lista.
            videosPopulares.computeIfAbsent(nombreCanal, k -> new ArrayList<>()).add(tituloVideo);
            System.out.println("Video agregado al canal " + nombreCanal + ": " + tituloVideo);
        } else {
            System.out.println("El canal no existe o el video es inválido.");
        }
    }

    // Método para eliminar un video de un canal específico.
    public void eliminarVideoACanal(String nombreCanal, String tituloVideo) {
        // Verifica si el canal y el video existen.
        if (canales.contains(nombreCanal) && videosPopulares.containsKey(nombreCanal)) {
            List<String> videos = videosPopulares.get(nombreCanal);
            if (videos.remove(tituloVideo)) {
                System.out.println("Video eliminado del canal " + nombreCanal + ": " + tituloVideo);
            } else {
                System.out.println("El video no existe o es inválido.");
            }
        } else {
            System.out.println("El canal no existe.");
        }
    }

    // Método para obtener los videos populares de un canal específico.
    public List<String> obtenerVideosPopulares(String nombreCanal) {
        // Devuelve los videos del canal si existen.
        if (canales.contains(nombreCanal)) {
            return videosPopulares.getOrDefault(nombreCanal, new ArrayList<>());
        } else {
            System.out.println("El canal no existe.");
            return new ArrayList<>();
        }
    }

    // Método para obtener todos los canales.
    public Set<String> obtenerTodosLosCanales() {
        return new HashSet<>(canales); // Devuelve una copia del set de canales.
    }
}

main.java

Last updated