wie kann ich Werte eines Arrays in eine ArrayList überführen?
Mir ist jetzt nur die Möglichkeit bekannt jedes Objekt einzeln hinzuzufügen.
und wie würde das gehen?
Ein Array in eine ArrayList mit bestehenden Objekteinträgen einfügen? Oder ein Array in eine ArrayList umwandeln?
ein Aray in eine neue ArrayList umwandeln oder hinzufügen (ist mir ja eigentlich egal)
folgender Hintergrund. ich habe ein such-Methode
und die such klasse hat einmal
String name;
Menge[] als Array
… dafür muss ich die Menge in eine zuerst in einer ArrayList speichern um damit zu arbeiten
Dann am einfachsten:
List list = Arrays.asList(einArray);
hm…wäre nett wenn du noch etwas weiter ausholen kannst.
die Liste ist dann ein Array ?!
und die kann ich mit was befüllen?
Der obige Code würde ein bestehendes Array (einArray) in eine Liste (java.util.List) umwandeln.
Hier mal Beispielcode, wie du weitere Objekte der Liste hinzufügen kannst.
public class ArrayToList {
public static void main(String[] args) {
List list = Arrays.asList(new String[] { //aus Array eine Liste erzeugen
"1", "2", "3"
});
ArrayList aList = new ArrayList(list); //die zum gewünschten Typ umformen
aList.add("4"); //neues Objekt einfügen
for(int i = 0; i < aList.size(); i++) {
System.out.println(aList.get(i)); //Inhalt von ArrayList ausgeben
}
}
}```
musste statt der ArrayListe eine HashSet List Benutzen.
wenn ich mit meineList.toArray() mache
wird dann für Jedes Objekt der Liste ein neues Array erzeugt?
Hier das Konkrete Problem.
Die Methode
public Klasse[] search(){}
Hier werden die Ergebnisse gespeichert:
HashSet<Klasse> set = new HashSet<Klasse>();
und die Methode soll ein Array Klasse[] zurückgeben
...
return Klasse[];
Proble: wie kann ich die HashSet List zu einem Array Klasse[] machen?
Aus dem Kopf … müßte gehen mit
Klasse array[] = (Klasse[])set.toArray(new Klasse[set.size()]);
EDIT: Ach, da mußte glaubich noch ein cast hin
wie kann ich eigentlich ein Array durchsuchen und die Felder == null sind überspringen
if (sucheName.equals.equals(this.list.name){}
wie kann ich da verhindern dass null Objekte Felder mit aufgenommen werden?
So könnte es gehen.
if(array** != null) {
list.add(array**);
}
}```
Ich bekomm eimmer eine NullPointerException.
if (this.List.get(i).getIngredient().get(j) != null){
auch ein Try - Catch Block verhindert das nicht
ich muss ein HashSet zu einem Array Konvertrien das von Typ einer bestimmten Klasse ist
@Marco13 der Ansatz bring mir mommentan auch ein NullPointerException
Bei der Zeile, die ich gepostet hatte, kann es nur zu einer NullPointerException kommen, wenn set==null ist.
Bei deiner Zeile
if (this.List.get(i).getIngredient().get(j) != null){
kann es halt (unpraktischerweise) viele Möglichkeiten geben:
this.List kann null sein
this.List.get(i) kann null sein
this.List.get(i).getIngredient() kann null sein
… musst ggf. rausfinden, was der Fall ist - oder nochmal ein Stückchen Code posten, wo man genauer sieht, WO die Daten herkommen, und WO sie WIE in einen Array umgewandelt werden sollen…
public Recipe[] search(Criteria criteria){
for (int j = 0; j < this.recipeList.get(i)
.getRecipeIngredient().size(); j++) {
this.searchResultList.add(this.recipeList.get(i));
return this.searchResultList.toArray(new Recipe[] {});
}
Die Methode erfodert ein Suchkriterium.
die For - Schleife durchläuft die ArrayList in der die Rezept Objekte gespeichert werden.
Und in der ResultList (HashSet) sollen die gefundenen Werte gespeichert werden.
Als Rückgabewert wird ein Array zurückgegeben.
ich vermute this.recipeList.get(i) verursacht eine NullPointerException
Dann ist
this.recipeList == null
Prüf’ das ggf. mal durch ein
System.out.println(this.recipeList);
ganz am Anfang der Methode. Abgesehen davon: Im StackTrace der Exception steht genau, in welcher Zeile der Fehler aufgetreten ist…