我在解析xml后创建了一些ArrayLists。这些ArrayList的每个元素都是一个map>,所以我现在有8个Multimap的ArrayLists,现在我想检查第一个ArraList映射中的所有键到第二个ArrayList中的特定值。如果匹配,则取该值旁边的值并搜索以在第三个键中找到该值,依此类推。最后我可以发现,例如arrayList中的key1与arrayList 6中的key有关。基本上我想循环遍历每个arrayList的键和值。
你有什么建议是什么?
问候
伊曼
这是代码的一部分:
这是一个显示我想要构建的图表:
![图1] [1]
public class Test {
private int countAufgabe = 0;
private int countOrganisationseinheit = 0;
@SuppressWarnings("rawtypes")
private ArrayList<TreeMap> List_Map_Aufgabe = new ArrayList<>();
@SuppressWarnings("rawtypes")
private ArrayList<TreeMap> List_Map_Org = new ArrayList<>();
@SuppressWarnings("rawtypes")
private ArrayList<TreeMap> List_Map_AufAufOrgVerbindung = new ArrayList<>();
private ArrayList<TreeMap> List_Map_AufOrgKombination = new ArrayList<>();
private ArrayList<TreeMap> List_Map_OrgAufOrgVerbindung = new ArrayList<>();
private ArrayList<TreeMap> List_Map_AwbkAufOrgVerbindung = new ArrayList<>();
private ArrayList<TreeMap> List_Map_ABKonfiguration = new ArrayList<>();
private ArrayList<TreeMap> List_Map_AwbAwbkVerbindung = new ArrayList<>();
private ArrayList<TreeMap> List_Map_RechAnwendungsbaustein = new ArrayList<>();
private ArrayList<TreeMap> List_Map_KonAnwendungsbaustein = new ArrayList<>();
private ArrayList<TreeMap> List_Map_AufAufVerbindung = new ArrayList<>();
private TreeMap<String, List<String>> map_Auf = new TreeMap<String, List<String>>();
private TreeMap<String, List<String>> map_Org = new TreeMap<String, List<String>>();
private TreeMap<String, List<String>> map_AufAufOrgVerbindung = new TreeMap<String, List<String>>();
private TreeMap<String, List<String>> map_AufOrgKombination = new TreeMap<String, List<String>>();
private TreeMap<String, List<String>> map_OrgAufOrgVerbindung = new TreeMap<String, List<String>>();
private TreeMap<String, List<String>> map_AwbkAufOrgVerbindung = new TreeMap<String, List<String>>();
private TreeMap<String, List<String>> map_ABKonfiguration = new TreeMap<String, List<String>>();
private TreeMap<String, List<String>> map_AwbAwbkVerbindung = new TreeMap<String, List<String>>();
private TreeMap<String, List<String>> map_RechAnwendungsbaustein = new TreeMap<String, List<String>>();
private TreeMap<String, List<String>> map_KonAnwendungsbaustein = new TreeMap<String, List<String>>();
private TreeMap<String, List<String>> map_AufAufVerbindung = new TreeMap<String, List<String>>();
public int getCountAufgabe() {
return countAufgabe;
}
public int getCountOrganisationseinheit() {
return countOrganisationseinheit;
}
public void pars3LGM(String pfadzumLesen) {
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(pfadzumLesen);
NodeList elementList = doc.getElementsByTagName("element");
for (int i = 0; i < elementList.getLength(); i++) {
Node el = elementList.item(i);
if (el.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) el;
String nameClass = element.getAttribute("class");
/*
* find Aufgaben
*/
if (nameClass.equals("Aufgabe")) {
countAufgabe++;
ArrayList<String> valSet = new ArrayList<String>(100);
valSet.add("Aufgabe");
valSet.add(element.getElementsByTagName("field")
.item(1).getTextContent());// name of function
valSet.add(element.getElementsByTagName("field")
.item(2).getTextContent()); // Description
map_Auf.put(element.getAttribute("hash"), valSet);
}// end if Aufgabe
/*
* find Organizations
*/
else if (nameClass.equals("Organisationseinheit")) {
countOrganisationseinheit++;
ArrayList<String> valSet = new ArrayList<String>(100);
valSet.add("Organisation");
valSet.add(element.getElementsByTagName("field")
.item(1).getTextContent());// name of Org
valSet.add(element.getElementsByTagName("field")
.item(2).getTextContent()); // Description
map_Org.put(element.getAttribute("hash"), valSet);
}
/*
* find AufAufOrgVerbindung
*/
else if (nameClass.equals("AufAufOrgVerbindung")) {
ArrayList<String> valSet = new ArrayList<String>(100);
valSet.add("AufAufOrgVerbindung");
// valSet.add(element.getElementsByTagName("field").item(1).getTextContent());//
// name
valSet.add(element.getElementsByTagName("field")
.item(3).getTextContent());
valSet.add(element.getElementsByTagName("field")
.item(4).getTextContent());
map_AufAufOrgVerbindung.put(
element.getAttribute("hash"), valSet);
} else if (nameClass.equals("AufOrgKombination")) {
ArrayList<String> valSet = new ArrayList<String>(100);
valSet.add("AufOrgKombination");
// valSet.add(element.getElementsByTagName("field").item(1).getTextContent());//
// name of
valSet.add(el.getLastChild().getTextContent());
map_AufOrgKombination.put(element.getAttribute("hash"),
valSet);
} else if (nameClass.equals("OrgAufOrgVerbindung")) {
ArrayList<String> valSet = new ArrayList<String>(100);
valSet.add("OrgAufOrgVerbindung");
// valSet.add(element.getElementsByTagName("field").item(1).getTextContent());//
// name
valSet.add(element.getElementsByTagName("field")
.item(3).getTextContent());
valSet.add(element.getElementsByTagName("field")
.item(4).getTextContent());
map_OrgAufOrgVerbindung.put(
element.getAttribute("hash"), valSet);
} else if (nameClass.equals("AwbkAufOrgVerbindung")) {
ArrayList<String> valSet = new ArrayList<String>(100);
valSet.add("AwbkAufOrgVerbindung");
// valSet.add(element.getElementsByTagName("field").item(1).getTextContent());//
// name
valSet.add(element.getElementsByTagName("field")
.item(3).getTextContent());// start
valSet.add(element.getElementsByTagName("field")
.item(4).getTextContent());// end
map_AwbkAufOrgVerbindung.put(
element.getAttribute("hash"), valSet);
} else if (nameClass.equals("ABKonfiguration")) {
ArrayList<String> valSet = new ArrayList<String>(100);
valSet.add("ABKonfiguration");
// valSet.add(element.getElementsByTagName("field").item(1).getTextContent());//
// name
map_ABKonfiguration.put(element.getAttribute("hash"),
valSet);
} else if (nameClass.equals("AwbAwbkVerbindung")) {
ArrayList<String> valSet = new ArrayList<String>(100);
valSet.add("AwbAwbkVerbindung");
// valSet.add(element.getElementsByTagName("field").item(1).getTextContent());//
// name
valSet.add(element.getElementsByTagName("field")
.item(3).getTextContent());// start
valSet.add(element.getElementsByTagName("field")
.item(4).getTextContent());// end
map_AwbAwbkVerbindung.put(element.getAttribute("hash"),
valSet);
} else if (nameClass.equals("RechAnwendungsbaustein")) {
ArrayList<String> valSet = new ArrayList<String>(100);
valSet.add("RechAnwendungsbaustein");
// valSet.add(element.getElementsByTagName("field").item(1).getTextContent());//
// name
map_RechAnwendungsbaustein.put(
element.getAttribute("hash"), valSet);
} else if (nameClass.equals("KonAnwendungsbaustein")) {
ArrayList<String> valSet = new ArrayList<String>(100);
valSet.add("KonAnwendungsbaustein");
// valSet.add(element.getElementsByTagName("field").item(1).getTextContent());//
// name
map_KonAnwendungsbaustein.put(
element.getAttribute("hash"), valSet);
} else if (nameClass.equals("AufAufVerbindung")) {
ArrayList<String> valSet = new ArrayList<String>(100);
valSet.add("AufAufVerbindung");
// valSet.add(element.getElementsByTagName("field").item(1).getTextContent());//
// name
valSet.add(element.getElementsByTagName("field")
.item(3).getTextContent());// start
valSet.add(element.getElementsByTagName("field")
.item(4).getTextContent());// end
map_AufAufVerbindung.put(element.getAttribute("hash"),
valSet);
}
}
}
List_Map_Org.add(map_Org);
List_Map_AufAufOrgVerbindung.add(map_AufAufOrgVerbindung);
List_Map_Aufgabe.add(map_Auf);
List_Map_AufOrgKombination.add(map_AufOrgKombination);
List_Map_OrgAufOrgVerbindung.add(map_OrgAufOrgVerbindung);
List_Map_AwbkAufOrgVerbindung.add(map_AwbkAufOrgVerbindung);
List_Map_ABKonfiguration.add(map_ABKonfiguration);
List_Map_AwbAwbkVerbindung.add(map_AwbAwbkVerbindung);
List_Map_RechAnwendungsbaustein.add(map_RechAnwendungsbaustein);
List_Map_KonAnwendungsbaustein.add(map_KonAnwendungsbaustein);
List_Map_AufAufVerbindung.add(map_AufAufVerbindung);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void findFunctionOrg() {
String aufgabe = null;
List<String> aufauforg_value;
String auforgkom = null;
List<String> orgauforg_value = null;
//System.out.println(List_Map_Aufgabe.get(0));
//System.out.println(List_Map_AufAufOrgVerbindung);
for (Entry<String, List<String>> entryAuf : map_Auf.entrySet()) {
for (Entry<String, List<String>> entryAufAuforg : map_AufAufOrgVerbindung
.entrySet()) {
for (Entry<String, List<String>> entryAufOrgKom : map_AufOrgKombination
.entrySet()) {
for (Entry<String, List<String>> entryorgauforg : map_OrgAufOrgVerbindung
.entrySet()) {
orgauforg_value = entryorgauforg.getValue();
}
//h
auforgkom = entryAufOrgKom.getKey();
aufgabe = entryAuf.getKey();
aufauforg_value = entryAufAuforg.getValue();
if (aufauforg_value.get(2).contains(aufgabe)
& aufauforg_value.get(3).contains(auforgkom))
System.out.println(aufauforg_value.get(2) + " "
+ aufgabe + " " + aufauforg_value.get(3)
+ " " + auforgkom);
}
}
}
}