Benötige Hilfe
Ich will über die Klasse
die Klasse
steuern.
Man kann Alben hinzufügen, Alben und die Infos darüber über eine ID ausgeben, Alben suchen, und Alben mittels der ID löschen.
Nun will ich aber auch Alben mittels Angabe von Künstlern (
) löschen können.
Ich habe die Methode removeAlbum in der Klasse AlbumAdministration mittels String Parameter überladen. In der AlbumTestDrive.java steckt die main-Methode, wo auch zwei Alben erstellt werden, das zweite Album soll dann mittels Angabe eines Künstlers gelöscht werden - geschieht aber nicht. Was läuft da falsch?
Ich will über die Klasse
Code:
AlbumAdministration
Code:
Album
Man kann Alben hinzufügen, Alben und die Infos darüber über eine ID ausgeben, Alben suchen, und Alben mittels der ID löschen.
Nun will ich aber auch Alben mittels Angabe von Künstlern (
Code:
artist
Ich habe die Methode removeAlbum in der Klasse AlbumAdministration mittels String Parameter überladen. In der AlbumTestDrive.java steckt die main-Methode, wo auch zwei Alben erstellt werden, das zweite Album soll dann mittels Angabe eines Künstlers gelöscht werden - geschieht aber nicht. Was läuft da falsch?
Java:
package alben_test;
import java.util.Vector;
public class Album {
private long id;
private String title;
private Vector <String> artists;
private String publisher;
private Integer year;
private String asin;
private static int nextId = 1; //1)
public Album(){
this.id = nextId; //1)
this.artists = new Vector <String> ();
this.title = "";
this.publisher = "";
this.asin = "";
this.year = null;
nextId++; //1)
}
public static int getNextId(){ //2)
return nextId;
}
public long getId(){
return this.id;
}
public void setTitle(String title){
this.title = title;
}
public String getTitle(){
return this.title;
}
public void addArtist(String artist){
this.artists.add(artist);
}
public Vector <String> getArtists(){
return this.artists;
}
public void setPublisher(String publisher){
this.publisher = publisher;
}
public String getPublisher(){
return this.publisher;
}
public void setYear(int year){
this.year = new Integer(year);
}
public int getYear(){
return this.year;
}
public void setAsin(String asin){
this.asin = asin;
}
public String getAsin(){
return this.asin;
}
}
Java:
package alben_test;
import java.util.Iterator;
import java.util.Vector;
public class AlbumAdministration {
Vector<Album> albums;
public AlbumAdministration() {
this.albums = new Vector<Album>();
}
public boolean addAlbum(long id, String title, Vector<String> artists,String publisher, int year, String asin) {
for (int i = 0; i < this.albums.size(); i++) {
if (this.albums.get(i).getId() == id) {
return false;
}
}
Album album = new Album();
album.setTitle(title);
album.setPublisher(publisher);
album.setYear(year);
album.setAsin(asin);
for (Iterator<String> artistIter = artists.iterator(); artistIter.hasNext();) {
album.addArtist(artistIter.next());
}
this.albums.add(album); //2)
System.out.println(Album.getNextId());
return true;
}
public void removeAlbum(long id) {
for (int i = 0; i < this.albums.size(); i++) {
if (this.albums.get(i).getId() == id) {
this.albums.remove(i);
break;
}
}
}
public void removeAlbum(String artist){
for (int i = 0; i < this.albums.size(); i++){
if (this.albums.get(i).getArtists().contains(artist)){
this.albums.remove(i);
break;
}
}
}
public String getAlbumStr(long id) {
Album currAlbum;
String albumStr = "Album not found!";
for (Iterator<Album> iter = this.albums.iterator(); iter.hasNext();) {
currAlbum = iter.next();
if (currAlbum.getId() == id) {
albumStr = currAlbum.getId() + ";" + currAlbum.getTitle() + ";";
for (Iterator<String> authorIter = currAlbum.getArtists()
.iterator(); authorIter.hasNext();) {
albumStr += authorIter.next();
if (authorIter.hasNext()) {
albumStr += ",";
}
}
albumStr += ";"+currAlbum.getPublisher()+";"+currAlbum.getYear()+";"+currAlbum.getAsin();
}
}
return albumStr;
}
public Vector<Long> search(String searchStr) {
Vector<Long> artistHits = new Vector<Long>();
Album currAlbum;
for (Iterator<Album> iter = this.albums.iterator(); iter.hasNext();) {
currAlbum = iter.next();
for (Iterator<String> artistIter = currAlbum.getArtists().iterator(); artistIter.hasNext();) {
if (artistIter.next().contains(searchStr)) {
artistHits.add(new Long(currAlbum.getId()));
}
}
}
return artistHits;
}
}
Java:
package alben_test;
import java.util.Arrays;
import java.util.Vector;
public class AlbumTestDrive {
public static void main (String[] args){
AlbumAdministration albumAdmin = new AlbumAdministration();
System.out.println(albumAdmin.addAlbum(1, "Nevermind", new Vector<String> (Arrays.asList(new String[]{"Nirvana"})), "Geffen, Universal", 1991, "B000003TA4"));
System.out.println(albumAdmin.addAlbum(2, "Crossing All Over Vol.14", new Vector<String> (Arrays.asList(new String[]{"Clawfinger Godsmack Muse Donots"})), "Polystar", 2001, "B00005QJPC"));
System.out.println(albumAdmin.getAlbumStr(1));
System.out.println(albumAdmin.getAlbumStr(2));
albumAdmin.removeAlbum("Muse");
System.out.println(albumAdmin.getAlbumStr(2));
}
}
Zuletzt bearbeitet von einem Moderator: