Lab 2 edda Arreglos
import java.util.Random;
public class Lab2EddaArreglos { // ARREGLOS
public static class Song {
private String nombre;
private String artista;
private String album;
private int duracion;
public Song(String n, String a, String al, int d) {
nombre = n;
artista = a;
album = al;
duracion = d;
}
}
public static class Playlist {
private String nombre;
private Song[] cancionesA = new Song[1];
int largo = 0;
public void agregarCancionPlaylist_A(Song nueva) {
if (largo == 0) {
largo++;
cancionesA[0] = nueva;
} else {
largo++;
Song[] aux = new Song[(cancionesA.length + 1)];
for (int i = 0; i < cancionesA.length; i++) {
aux[i] = cancionesA[i];
}
aux[aux.length - 1] = nueva;
cancionesA = aux;
}
}
public void quitarCancionPlaylist_A(Song remove) {
int aux = -1;
for (int i = 0; i < cancionesA.length; i++) {
if (cancionesA[i].equals(remove)) {
aux = i;
break;
}
}
if (aux != -1) {
Song[] aux2 = new Song[cancionesA.length - 1];
int j = 0;
for (int i = 0; i < cancionesA.length; i++) {
if (i != aux) {
aux2[j] = cancionesA[i];
j++;
}
}
cancionesA = aux2;
}
}
// editar playlist con arreglo
public void editarPlaylist_A(int h, int k) {
h--;
k--;
Song aux = cancionesA[h];
cancionesA[h] = cancionesA[k];
cancionesA[k] = aux;
}
//imprimir con fines de prueba
public void imprimir(){
for (int i = 0; i < cancionesA.length; i++){
System.out.println(cancionesA[i].nombre);
}
}
}
public static class Reproductor {
private Playlist playlists = new Playlist();
private Song[] cola_reproduccion_A = new Song[1];
public void agregarCancionCola_A(Song nueva) {
if (cola_reproduccion_A.length == 1) {
cola_reproduccion_A[0] = nueva;
} else {
Song[] aux = new Song[(cola_reproduccion_A.length) + 1];
for (int i = 0; i < cola_reproduccion_A.length; i++) {
aux[i] = cola_reproduccion_A[i];
}
aux[cola_reproduccion_A.length] = nueva;
}
}
public void quitarCancionCola_A(Song remove) {
int index = 0;
for (int i = 0; i < cola_reproduccion_A.length; i++) {
if (cola_reproduccion_A[i] == remove) {
index = i;
break;
}
}
Song[] aux2 = new Song[cola_reproduccion_A.length - 1];
for (int i = 0; i < aux2.length; i++) {
if (i == index) {
aux2[i] = cola_reproduccion_A[i + 1];
} else {
aux2[i] = cola_reproduccion_A[i];
}
}
cola_reproduccion_A = aux2;
}
public void reproducirAleatoriamente_A(Playlist play) {
int aux = play.cancionesA.length;
Random rand = new Random();
while (aux > 0) {
int random_number = rand.nextInt(aux);
// considerar que imprimirla es reproducirla
System.out.println(play.cancionesA[random_number].nombre);
for (int i = random_number; i < aux - 1; i++) {
play.cancionesA[i] = play.cancionesA[i + 1];
}
aux--;
}
}
}
public static void main(String[] args) {
// Crear algunas canciones de ejemplo
Song cancion1 = new Song("Cancion 1", "Artista 1", "Album 1", 180); // Duración en segundos
Song cancion2 = new Song("Cancion 2", "Artista 2", "Album 2", 240);
Song cancion3 = new Song("Cancion 3", "Artista 3", "Album 3", 200);
Song cancion4 = new Song("Cancion 4", "Artista 4", "Album 4", 220);
// Crear una lista de reproducción de ejemplo
Playlist miPlaylist = new Playlist();
miPlaylist.nombre = "Mi Lista de Reproducción";
miPlaylist.agregarCancionPlaylist_A(cancion1);
miPlaylist.agregarCancionPlaylist_A(cancion2);
miPlaylist.agregarCancionPlaylist_A(cancion3);
miPlaylist.agregarCancionPlaylist_A(cancion4);
// Crear un reproductor
Reproductor miReproductor = new Reproductor();
// Agregar canciones a la cola de reproducción
miReproductor.agregarCancionCola_A(cancion1);
miReproductor.agregarCancionCola_A(cancion2);
miReproductor.agregarCancionCola_A(cancion3);
miReproductor.agregarCancionCola_A(cancion4);
// Probar la reproducción aleatoria
System.out.println("original");
miPlaylist.imprimir();
miPlaylist.editarPlaylist_A(2, 4);
System.out.println("editada");
miPlaylist.imprimir();
}
}