Originariamente inviato da derVerfall
no l'altra classe è algoritmo(che riceve il tipo di algoritmo,il programma associato ecc), che è simile a Brano ma non fa da main...

il mio main teoricamente è la classa archivio e tramite quella si generano in cascata le altre classi

Archivio
|
Cartella
|
Brano
|
Algoritmo

che faccio?

inoltre
la mia classe Cartella contiene una Mappa di Brani...dici che mi conviene anche li togliere la mappa e crearmi una lista?
ma con l'arrayList posso gestire il nome del brano, l'artista e l'estensione (mp3 ecc) ?
Mah..si, il main in Archivi direi possa andare (anche se lo trovo scomodo). Ovviamente ti conviene farti un ArrayList<Archivi> per ogni Archivio che avrai!
per quanto riguarda la classe Cartella che contiene una mappa, bhe, forse sarebbe meglio un ArrayList<Brani>, l'aggiunta del brano all'oggetto chiamate è sempre molto semplice ovvero:

codice:
ArrayList<Brani> brani = new ArrayList<Brani>();

void addBrano(Brano b) {
  // Qui volendo potresti controllare se il brano esiste in questo elenco.
  brani.add(b);
}
Per quanto riguarda le tue domanda la risposta è si! Quei dati riguardano la classe Brani per cui ti basta richiamare l'apposito metodo per ottenere il brano e i dati contenuto nell'oggetto Brano.
Tieni presente però, che un Artista può essere presente in più Archivi! E ogni Archivio ha più cartelle in cui cercare... l'operazione mi sembra un pò dispendiosa però..