Meine Klassenzuordnung erfordert, dass ich ein Array von Lamborghini-Objekten (Klasse bereits erstellt) basierend auf Pferdestärken aus einer ArrayList von Lamborghinis erstellt. Daher muss die Größe des Lamborghini [] -Arrays davon abhängig sein, wie viele ArrayList-Referenzen in diese Parameter fallen. Ich habe keine Probleme mit diesem Teil; Meine Methode gibt die korrekte Länge des Arrays zurück, aber jedes Objekt gibt 'null' zurück.Wie werden die Daten eines Arrays aus einer ArrayList (Java) als Methode mit Parametern gefüllt?
Hier sind ein paar Taktiken ich schon versucht habe:
public Lamborghini[] letsTryThisAgain(double lowHP, double highHP){
ArrayList<Lamborghini> stockArray = new ArrayList<Lamborghini>();
Iterator<Lamborghini> it = inventory.iterator();
if ((inventory.get(0) != null) || (inventory.size() != 0)){
while (it.hasNext()){
Lamborghini l = it.next();
if ((l.getHorsepower() >= lowHP) &&
(l.getHorsepower() <= highHP)){
stockArray.add(new Lamborghini(l.getModelYear(), l.getModelName(), l.getHorsepower(), l.getIsRearWheelDrive()));
}
}
}
Lamborghini[] lambosHP = new Lamborghini[stockArray.size()];
lambosHP = stockArray.toArray(lambosHP);
return lambosHP;
}
und Variationen auf der folgenden:
for (int i = 0; i < inventory.size(); i++){
if (inventory.get(i) != null)
{
if (inventory.get(i).getHorsepower() != 0.0){
if ((inventory.get(i).getHorsepower() >= lowHP) &&
inventory.get(i).getHorsepower() <= highHP){
lambosHP[counter] = inventory.get(i);
}
}
}
counter ++;
}
Letztere, bis ich eine ArrayOutOfBoundsException für die Linie lambosHP an die Arbeit erscheint [Zähler] = inventar.get (i).
Ich würde gerne eine Lösung, aber einige Erklärung zu warum es funktioniert nicht wäre noch besser.
was versuchst du zu tun ?? 'Lamborghini [] lambosHP = neuer Lamborghini [stockArray.size()]; lambosHP = stockArray.toArray (lambosHP); return lambosHP; 'glaubst du, es wird Array zurückholen? – emotionlessbananas