Kurze Frage zu Array

Java:
public String[] holeCDproKategorie(String kategorie) throws RemoteException {
	int i, j = 0;
	for(i = 0; i < cds.size(); i++) {
		if(cds.get(i).kategorie.equals(kategorie))
			j++;
	}
	String[] tmp = new String[j];
	j = 0;
	for(i = 0; i < tmp.length; i++) {
		if(cds.get(i).kategorie.equals(kategorie))
			tmp[j++] = cds.get(i).isbn;
	}
	return tmp;     
}
 
Also er geht die for-schleife durch und vergleicht mit equals den string kategorie.. und erhöht j auf eins bis er alle durch hat und erstellt dann ein neuen String..****
 
Es wird einmal alles durchgegangen, um herauszufinden,
wieviel CDs in die Kategorie passen.

Dann wird ein entsprechend großes Stringaray erstellt.

In der zweiten for-Schleife wird dieses dann auch gefüllt.
 
ich hab mal das geändert aber dann ist das return tmp; falsch... aber ich muss ja das Array CD[] für String[] ersetzen ne****(da ja public CD[] holeCD..etc. Nur dann passt die zeile wieder nicht:

Java:
tmp[j++] = cds.get(i).isbn;

cannot convert from String to CD
 
Wenn du die ganzen CDs zurückgeben willst:
Java:
public CD[] holeCDproKategorie(String kategorie) throws RemoteException {
	int i, j = 0;
	for(i = 0; i < cds.size(); i++) {
		if(cds.get(i).kategorie.equals(kategorie))
			j++;
	}
	CD[] tmp = new String[j];
	j = 0;
	for(i = 0; i < tmp.length; i++) {
		if(cds.get(i).kategorie.equals(kategorie))
			tmp[j++] = cds.get(i);
	}
	return tmp;     
}
Ist aber wirklich nicht schwer, Stirng[] in CD[] zu ändern und das isbn wegzunehmen...
 
sorrryyy war bisschen durcheinander gerade :)

Dasselbe könnt ich jetzt auch als Beispiel so machen oder:

Java:
public CD holeCD(String isbn) throws RemoteException {

		    int i, j = 0;
		    
		    for(i = 0; i < cds.size(); i++) {
		        if(cds.get(i).isbn.equals(isbn))
		            j++;
		    }
		    
		    CD tmp = new CD(j);
		    j = 0;
		    
		    for(i = 0; i < tmp.length; i++) {
		        if(cds.get(i).isbn.equals(isbn))
		            tmp[j++] = cds.get(i);
		    }
		    return tmp;     
	}

Das wäre doch machbar oder?
 
Da es jetzt um eine einzelne CD geht, nein.
Java:
public CD holeCD(String isbn) throws RemoteException {
	int i;
	for(i = 0; i < cds.size(); i++) {
		if(cds.get(i).isbn.equals(isbn))
			return cds.get(i);
	} 
}
Hat diese RemoteException eigentlich irgendeinen Sinn?
 
Ja da es ja um RMI Server+Client geht.. da muss die ja dabei sein so wie ich das rauslesen konnte aus dem buch.


muss ich da nicht was definieren wie CD tmp = new CD(); ****? bzw das ich am ende was return-en kann. da ich ja nach der for-schleife noch ein return setzen muss.
 
Java:
public CD holeCD(String isbn) throws RemoteException {
	int i;
	for(i = 0; i < cds.size(); i++) {
		if(cds.get(i).isbn.equals(isbn))
			return cds.get(i);
	} 
	return null;
}
Und bin mit RMI ja nicht sehr vertraut,
aber wenn du unter keinen Umständen eine RemoteException in holeCD erzeugst,
kannst du das throws... meiner Meinung nach rausnehmen.
 
Zurück