比较Multimap的arrayLists

时间:2014-11-17 19:07:26

标签: java arraylist multimap

我在解析xml后创建了一些ArrayLists。这些ArrayList的每个元素都是一个map>,所以我现在有8个Multimap的ArrayLists,现在我想检查第一个ArraList映射中的所有键到第二个ArrayList中的特定值。如果匹配,则取该值旁边的值并搜索以在第三个键中找到该值,依此类推。最后我可以发现,例如arrayList中的key1与arrayList 6中的key有关。基本上我想循环遍历每个arrayList的键和值。
你有什么建议是什么? 问候 伊曼 这是代码的一部分: 这是一个显示我想要构建的图表:

![图1] [1]

在findFunctionOrg方法中,我想循环遍历多个地图,并在map_AufAufOrgVerbindung的值中找到map_Aufgabe的键。如果我在那里找到匹配项,我将获取它旁边显示的值,并将其与map_AufOrgKombination的键进行比较,并再次查找map_OrgAufOrgVerbindung值中此键的匹配项。

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);                 

            }
        }
    }
}

0 个答案:

没有答案