[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