Warum benutzt du nicht die .toArray - Funktion der ArrayList?Hallo Leute ich hätte mal eine ganz einfache Frage.Wie kann ich alle Elemente aus einer z.b String ArrayList in ein Array speichern,aber auch so das die Länge des Arrays der Länge der Arraylist entspricht.
List<String> stringlist = new ArrayList<String>();
stringlist.add("String1");
stringlist.add("String2");
stringlist.add("String2");
String[] strings = stringlist.toArray();
Naja also ich hab es mal so probiertWarum benutzt du nicht die .toArray - Funktion der ArrayList?
ArrayList <String[]> row1 = new ArrayList<String[]>();
String[][] row = row1.toArray();
Ja hast duNaja also ich hab es mal so probiert
aber da steht dann immer als Fehler cannot convert from from Object[] to String[][] oder habe ich einen Denkfehler?Code:ArrayList <String[]> row1 = new ArrayList<String[]>(); String[][] row = row1.toArray();
String[] stringArray = list.toArray(new String[0]);
Jap also am Ende möchte ich ein Array haben wo String arrays drinne sind. Wie würde der Code dann aussehen?Ja hast dus. meinen Code String[] nicht String[][],weil ArrayList<String> ist String[] und nicht String[][]
um genau zu sein. Ein toArray() liefert eine Object[] zurück. Die Funktion verfügt aber über einen Übergabeparameter
public <T> T[] toArray(T[] a)
dem entsprechend muss es heissen:
Code:String[] stringArray = list.toArray(new String[0]);
weil ohne Übergabe parameter wird es zu Object[] konvertiert.
BTW ist es korrekt, das es eine ArrayList<String[]> ist? Also ein String[][]?
public static String[][] decapsulate(List<List<String>> list) {
return list.stream().map(l -> l.toArray(new String[0])).toArray(String[][]::new);
}
public static void main(String[] args) throws IOException {
List<List<String>> table = List.of(List.of("A", "B"), List.of("3", "4"));
System.out.println(Arrays.deepToString(decapsulate(table)));
}
package Klassen;
import java.io.IOException;
import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class GAEB {
public static void main(String[] args)
{
GUI aa = new GUI();
}
public static String[][] Tabellefüllen() {
ArrayList<String[]> row1 = new ArrayList<String[]>();
String[][] row = row1.toArray(new String[4][100]);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("Muster-Ausschreibungs-LV-ErdMauerBetonarbeiten-xml32.x83");
NodeList BoQBodyList = doc.getElementsByTagName("BoQBody");
for (int i = 0; i < BoQBodyList.getLength();i++) {
Node p = BoQBodyList.item(i);
if (!p.getFirstChild().getLastChild().getFirstChild().getNodeName().equals("Itemlist")&& !p.getFirstChild().getNodeName().equals("Itemlist")) {
Element BoQBody1 = (Element) p;
NodeList BoQCtgyList = BoQBody1.getChildNodes();
for(int j = 0; j < BoQCtgyList.getLength();j++) {
Node a = BoQCtgyList.item(j);
//BoQCtgy erste Ebene
Element BoQCtgy = (Element) a;
//RNoPart erste Ebene
String RNoPart1 = BoQCtgy.getAttribute("RNoPart");
String Span1 = BoQCtgy.getFirstChild().getFirstChild().getFirstChild().getTextContent();
System.out.println(RNoPart1+ "."+ Span1);
String[] a1 = {RNoPart1,"","",Span1};
row1.add(a1);
//Ende erste Ebene
NodeList BoQCtgy2List = BoQCtgy.getLastChild().getChildNodes();
for (int q = 0;q< BoQCtgy2List.getLength();q++) {
Node c = BoQCtgy2List.item(q);
//BoQCtgy zweite Ebene
Element BoQCtgy2 = (Element) c;
String RNoPart2 = BoQCtgy2.getAttribute("RNoPart");
String Span2 = BoQCtgy2.getFirstChild().getFirstChild().getFirstChild().getTextContent();
System.out.println(RNoPart1 +"."+ RNoPart2 + Span2);
String[] a2 = {(RNoPart1+"."+RNoPart2),"","",Span2};
row1.add(a2);
//Ende zweite Ebene
NodeList itemList = BoQCtgy2.getLastChild().getFirstChild().getChildNodes();
for (int z = 0; z<itemList.getLength();z++) {
Node w = itemList.item(z);
//Item
Element item = (Element) w;
//RnoPart 3
String RNoPart3 = item.getAttribute("RNoPart");
NodeList QtyList = item.getElementsByTagName("Qty");
for (int jj = 0;jj< QtyList.getLength();jj++) {
Node kk = QtyList.item(jj);
Element Qty = (Element) kk;
//Qty Text
String QtyText = Qty.getTextContent();
NodeList qq = item.getElementsByTagName("QU");
for(int rr = 0; rr<qq.getLength();rr++) {
Node aa = qq.item(rr);
Element qu = (Element) aa;
//QU Text
String QU = qu.getTextContent();
String Span3 = item.getLastChild().getLastChild().getLastChild().getFirstChild().getFirstChild().getFirstChild().getFirstChild().getTextContent();
System.out.println(RNoPart1+"."+RNoPart2+"."+RNoPart3+", "+QtyText+", "+QU+", "+Span3);
String[] a3 = {(RNoPart1+"."+RNoPart2+"."+RNoPart3),QtyText,QU,Span3};
//Ende dritte Ebene
row1.add(a3);
}
}
}
}
}
}
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return row;
}
}