Hallo,
ich finde im moment meinen Fehler nicht.
ich habe eine List, diese beinhaltet String Arrays, ausgangsformat sieht so ähnlich aus, habe eine ArrayList im code eingefügt damit man es testen kann:
meine List ist Zeilenweise aufgebaut, wenn ich das erste Objekt aus der List hole
bekomme ich den String "Timestamp".
liefert mir "CommittedVirtualMemorySize (MB)"
liefert mir "FreePhysicalMemorySize (MB)"
usw..
ich möchte jedoch, dass ein String[] in der Liste vertikal aufgebaut ist, also:
und nicht:
dazu habe ich mir folgene Methode geschrieben:
so.. der code funktioniert soweit, aber wenn ihr euch mal das ergebnis anseht werdet ihr merken, dass er die letzte spalte der csv nicht mit übernimmt.. eines meiner abbruchkriterien ist noch nicht ganz korrekt...
____
java 6
eclipse 3.5
ich finde im moment meinen Fehler nicht.
ich habe eine List, diese beinhaltet String Arrays, ausgangsformat sieht so ähnlich aus, habe eine ArrayList im code eingefügt damit man es testen kann:
Code:
Timestamp ; CommittedVirtualMemorySize (MB) ; FreePhysicalMemorySize (MB) ; CollectionCount
26102009-15:15:03:684 ; 346 ; 395 ; 24213
26102009-15:25:04:531 ; 347 ; 396 ; 24223
26102009-15:35:05:363 ; 348 ; 397 ; 24233
26102009-15:45:06:262 ; 349 ; 398 ; 24243
meine List ist Zeilenweise aufgebaut, wenn ich das erste Objekt aus der List hole
Java:
list.get(0)[0]
Java:
list.get(0)[1]
Java:
list.get(0)[2]
usw..
ich möchte jedoch, dass ein String[] in der Liste vertikal aufgebaut ist, also:
Code:
[Timestamp, 26102009-15:15:03:684, 26102009-15:25:04:531, ... ]
Code:
[Timestamp, CommittedVirtualMemorySize (MB), FreePhysicalMemorySize (MB)]
dazu habe ich mir folgene Methode geschrieben:
Java:
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class testlist {
private static ArrayList<String[]> verticalItemArrayList = new ArrayList<String[]>();
public static ArrayList<String[]> readCSVandReturnVerticalList(
String fileName) {
String[] temp = null;
List<String[]> horizontalItemList = new ArrayList<String[]>();
horizontalItemList.add(new String[] { "Timestamp",
"CommittedVirtualMemorySize (MB)",
"FreePhysicalMemorySize (MB)", "Usage-Max (MB)",
"CollectionCount", "CollectionTime" });
horizontalItemList.add(new String[] { "26102009-15:15:03:684", "346",
"1", "24213", "6264053", "1" });
horizontalItemList.add(new String[] { "26102009-15:26:04:531", "347",
"2", "24223", "6265315", "2" });
horizontalItemList.add(new String[] { "26102009-15:35:05:363", "348",
"3", "24233", "6266501", "4" });
horizontalItemList.add(new String[] { "26102009-15:49:06:262", "349",
"4", "24243", "6267689", "8" });
horizontalItemList.add(new String[] { "26102009-15:55:07:032", "350",
"5", "24253", "6269005", "16" });
System.out.println(horizontalItemList.size() + " * "
+ horizontalItemList.get(0).length
+ " (anzahl arrays * laenge)");
int q = 0;
for (int p = 0; p < horizontalItemList.size(); p++) {
if (p == 0) {
temp = new String[horizontalItemList.size()];
}
temp[p] = horizontalItemList.get(p)[q];
// stop criteria
//
if (p == (horizontalItemList.size() - 1)) {
if (q == (horizontalItemList.get(p).length - 1)
&& (p == (horizontalItemList.size() - 1))) {
System.out.println("ende");
break;
} else if (q < (horizontalItemList.get(p).length)) {
verticalItemArrayList.add(temp);
q++;
}
p = -1;
}
}
return verticalItemArrayList;
}
public static void main(String[] args) {
ArrayList<String[]> alist = readCSVandReturnVerticalList("newconnector.csv");
System.out.println(alist.size() + " zeilen");
System.out.println((alist.get(0)).length + " spalten");
for (String[] array : alist) {
for (String entity : array) {
System.out.println(entity);
}
}
}
}
so.. der code funktioniert soweit, aber wenn ihr euch mal das ergebnis anseht werdet ihr merken, dass er die letzte spalte der csv nicht mit übernimmt.. eines meiner abbruchkriterien ist noch nicht ganz korrekt...
____
java 6
eclipse 3.5
Zuletzt bearbeitet: