raw types & @SuppressWarnings("all")^^Hallo,
wie verhindere ich ausdrücke wie
?Java:List<List<List<List<List<List<List>>>>> Liste1=null
public class Coord {
private int[] coords;
public Coord(int... coords) {
this.coords = coords;
}
public int hashCode() {
int r = 1;
for(int c : coords) {
r = 17*r + c;
}
return r;
}
public boolean equals(Object o) {
if(o instanceof Coord) {
return Arrays.equals(coords, ((Coord)o).coords);
} else return false;
}
}
Map<Coord,String> = new HashMap<Coord, String>();
map.put(Coord(1,2,5,3), "test");
if(map.get(Coord(1,2,5,3)).equals("test")) {
//tu was
}
List<List<List<List<List<List<List>>>>> Liste1
for (int i=0; i<listA.size();i++){
for (int j=0;j<listA.get(i).size();j++){
usw...
}
}
Das ist ein Baum
Node root = <A>
List<Node> children = <A>.children() = { <aa>, <ab>, <ac> }
List<Node> grandchildren = children.get(0).children() = { <aaa>, <aab> ... }
...
public static void main (String args[]) throws Exception {
/** Erstellt document aus der xml-Datei. */
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build("C:/test.xml");
Element person = doc.getRootElement();}
mit Java mitteln wirst du hier nicht weiterkommen als zb JDom und dann auch ueber List.get(xx) gehen...[XML]
<A>
<aa>
<aaa>
<aa>
<aaaaa>
...
<aaab>
<aaac>
<aab>
...
<aac>
...
<ab>
<aba>
...
<ac>
...
[/XML]
mit Java mitteln wirst du hier nicht weiterkommen als zb JDom und dann auch ueber List.get(xx) gehen...
groovy ist da intuitiver
[groovy]
def A = new XmlParser().parse(...)
println A.aa.aaa.aaaa.text()
[/groovy]
Ziel: s.o., weiterarbeiten mit den untersten "Baumeinträgen" in der XML nach Vergleich der oberen Baumelemente. Ne, es muss mit Java realisiert werden.Was ist denn das globale Ziel? Was willst du mit dieser XML-Datei denn anstellen? Bist du dir sicher, dass du da mit java drangehen solltest, und nicht etwa mit XSLT o.ä?
Ist es nicht schon geparsed worden?du kannst natuerlich das XML parsen und in eine bessere OOP struktur bringen... was aber dennoch bleibt dass du einmal im Jaba weg das XML parsen musst
Das wäre dann aber ne neue Prog. bzw. Skriptsprache. Es soll mit Java gelöst werden. :rtfm:Hi,
wäre nicht XPath auch eine Alternative. Damit könntest du dir dann unter Angabe des Pfades ohne iterieren über diverse Listen die entsprechenden Elemente holen. Nur so als Tipp.
Du willst irgendwas mit java lösen, und scheust davor zurück, auf die Standard API (in diesem Fall XPath) zurückzugreifen? Wieso nimmst du dann überhaupt java? :noe:Das wäre dann aber ne neue Prog. bzw. Skriptsprache. Es soll mit Java gelöst werden. :rtfm:
Ich benötige es für folgendes:
[XML]
<A>
<aa>
<aaa>
<aaaa>
<aaaaa>
...
<aaab>
<aaac>
<aab>
...
<aac>
...
<ab>
<aba>
...
<ac>
...
[/XML]
import java.util.HashMap;
public class XmlMap extends HashMap<XmlMap.Key, XmlMap.Value> {
/**
* @param data
*/
public void put(Object... data) {
if (data.length < 2) {
throw new IllegalArgumentException("blabla..");
}
super.put(createPutKey(data), new Value(data[data.length - 1]));
}
/**
* @param data
*
* @return Object
*/
public Object get(Object... data) {
return super.get(createGetKey(data));
}
private Key createPutKey(Object... data) {
StringBuffer key = new StringBuffer();
for (int i = 0; i < data.length - 1; i++) {
key.append(data[i].toString());
}
return new Key(key.toString());
}
private Key createGetKey(Object... data) {
StringBuffer key = new StringBuffer();
for (int i = 0; i < data.length; i++) {
key.append(data[i].toString());
}
return new Key(key.toString());
}
static class Key {
final Object key;
public Key(Object key) {
this.key = key;
}
public boolean equals(Object other) {
return key.equals(((Key) other).key);
}
public int hashCode() {
return key.hashCode();
}
public String toString() {
return key.toString();
}
}
static class Value {
final Object value;
/**
* @param value
*/
public Value(Object value) {
this.value = value;
}
public String toString() {
return value.toString();
}
}
/**
* @param _
*/
public static void main(String... _) {
XmlMap xm = new XmlMap();
xm.put("A", "aa", "aaa", "aaaa", "aaaaa", "Hello World A");
xm.put("A", "ab", "aba", "abaa", "abaaa", "Hello World B");
System.out.println(xm.get("A", "aa", "aaa", "aaaa", "aaaaa"));
System.out.println(xm.get("A", "ab", "aba", "abaa", "abaaa"));
}
}