Hallo,
habe eine SQL Tabelle der Form
id1, name1,
id2, name1,
id3, name1,
id4, name2,
id5, name2,
id6, name2
id is ein primärschlüssel; name kann öfter vorkommen
ich will jetzt in java eine funktion tabelle mit folgender signatur schreiben:
darin soll die Tabelle abgebildet werden; das sollte dann ca. so aussehen:
name1 -> [id1,id2,id3]
name2 -> [id4,id5,id6]
fällt euch dazu ein halbwegs effizienter Algorhytmus ein?
derzeit schaut das bei mir ca. so aus:
an und für sich bin ich mit dem Code glaub ich ganz gut unterwegs ...
mein Problem:
ein folders.toArray() gibt mir ein Object[] zurück; ich brauche aber (für einen API-Aufruf) ein long[] ...
gibt es da einen schöneren Weg als noch eine Funktion zur Umwandlung von Object[]->long[] zu schreiben???
gibt es vielleicht überhaupt eine elegantere Möglichkeit das Ganze zu schreiben???
mfg, guni
habe eine SQL Tabelle der Form
id1, name1,
id2, name1,
id3, name1,
id4, name2,
id5, name2,
id6, name2
id is ein primärschlüssel; name kann öfter vorkommen
ich will jetzt in java eine funktion tabelle mit folgender signatur schreiben:
Code:
private HashMap<String,long[]> tabelle()
name1 -> [id1,id2,id3]
name2 -> [id4,id5,id6]
fällt euch dazu ein halbwegs effizienter Algorhytmus ein?
derzeit schaut das bei mir ca. so aus:
Code:
private HashMap<String,long[]> tabelle() throws SQLException {
HashMap<String,long[]> tabelle = new HashMap<String,long[]>();
String query = "SELECT name, id FROM tabelle ORDER BY name";
ResultSet r = Init.q.executeQuery(query);
String new_name, old_name = null;
ArrayList<Long> folders = new ArrayList<Long>();
while (r.next()){
new_name = r.getString("name");
folders.add(r.getLong("id"));
if (!old_name.equals(new_name)) { // wenn neuer name gefunden
tabelle.put(new_name,folders.toArray());
folders.clear();
}
old_name = new_name;
}
return tabelle;
}
mein Problem:
ein folders.toArray() gibt mir ein Object[] zurück; ich brauche aber (für einen API-Aufruf) ein long[] ...
gibt es da einen schöneren Weg als noch eine Funktion zur Umwandlung von Object[]->long[] zu schreiben???
gibt es vielleicht überhaupt eine elegantere Möglichkeit das Ganze zu schreiben???
mfg, guni