Auf Thema antworten

Ich habe folgenden Code geschrieben:

[code=Java]

    Iterator huelleIter = huelle.keySet().iterator();

    while (huelleIter.hasNext()) {

      String key1 = huelleIter.next().toString();

      Iterator zwischenschichtIter = huelle.get(key1).keySet().iterator();

      while (zwischenschichtIter.hasNext()) {

        String key2 = zwischenschichtIter.next().toString();

        Iterator innenIter = zwischenschicht.get(key2).keySet().iterator();

        while (innenIter.hasNext()) {

          String key3 = innenIter.next().toString();

          String[] value = innen.get(key3);

          System.out.println("["+key1+"]["+key2+"]["+key3+"]["+value[0]+"]["+value[1]+"]");

        }

      }

    }

[/code]

aber leider bekomme ich diese Ausgabe:

[code=Java]

[Key1_2][Key2_4][Key3_1][data1_1][data2_1][data3_1]

[Key1_2][Key2_4][Key3_2][data1_2][data2_2][data3_2]

[Key1_2][Key2_4][Key3_3][data1_3][data2_3][data3_3]

[Key1_2][Key2_4][Key3_4][data1_4][data2_4][data3_4]

[Key1_2][Key2_2][Key3_1][data1_1][data2_1][data3_1]

[Key1_2][Key2_2][Key3_2][data1_2][data2_2][data3_2]

[Key1_2][Key2_2][Key3_3][data1_3][data2_3][data3_3]

[Key1_2][Key2_2][Key3_4][data1_4][data2_4][data3_4]

[Key1_2][Key2_3][Key3_1][data1_1][data2_1][data3_1]

[Key1_2][Key2_3][Key3_2][data1_2][data2_2][data3_2]

[Key1_2][Key2_3][Key3_3][data1_3][data2_3][data3_3]

[Key1_2][Key2_3][Key3_4][data1_4][data2_4][data3_4]

[Key1_2][Key2_1][Key3_1][data1_1][data2_1][data3_1]

[Key1_2][Key2_1][Key3_2][data1_2][data2_2][data3_2]

[Key1_2][Key2_1][Key3_3][data1_3][data2_3][data3_3]

[Key1_2][Key2_1][Key3_4][data1_4][data2_4][data3_4]

[Key1_1][Key2_4][Key3_1][data1_1][data2_1][data3_1]

[Key1_1][Key2_4][Key3_2][data1_2][data2_2][data3_2]

[Key1_1][Key2_4][Key3_3][data1_3][data2_3][data3_3]

[Key1_1][Key2_4][Key3_4][data1_4][data2_4][data3_4]

[Key1_1][Key2_2][Key3_1][data1_1][data2_1][data3_1]

[Key1_1][Key2_2][Key3_2][data1_2][data2_2][data3_2]

[Key1_1][Key2_2][Key3_3][data1_3][data2_3][data3_3]

[Key1_1][Key2_2][Key3_4][data1_4][data2_4][data3_4]

[Key1_1][Key2_3][Key3_1][data1_1][data2_1][data3_1]

[Key1_1][Key2_3][Key3_2][data1_2][data2_2][data3_2]

[Key1_1][Key2_3][Key3_3][data1_3][data2_3][data3_3]

[Key1_1][Key2_3][Key3_4][data1_4][data2_4][data3_4]

[Key1_1][Key2_1][Key3_1][data1_1][data2_1][data3_1]

[Key1_1][Key2_1][Key3_2][data1_2][data2_2][data3_2]

[Key1_1][Key2_1][Key3_3][data1_3][data2_3][data3_3]

[Key1_1][Key2_1][Key3_4][data1_4][data2_4][data3_4]

[Key1_4][Key2_4][Key3_1][data1_1][data2_1][data3_1]

[Key1_4][Key2_4][Key3_2][data1_2][data2_2][data3_2]

[Key1_4][Key2_4][Key3_3][data1_3][data2_3][data3_3]

[Key1_4][Key2_4][Key3_4][data1_4][data2_4][data3_4]

[Key1_4][Key2_2][Key3_1][data1_1][data2_1][data3_1]

[Key1_4][Key2_2][Key3_2][data1_2][data2_2][data3_2]

[Key1_4][Key2_2][Key3_3][data1_3][data2_3][data3_3]

[Key1_4][Key2_2][Key3_4][data1_4][data2_4][data3_4]

[Key1_4][Key2_3][Key3_1][data1_1][data2_1][data3_1]

[Key1_4][Key2_3][Key3_2][data1_2][data2_2][data3_2]

[Key1_4][Key2_3][Key3_3][data1_3][data2_3][data3_3]

[Key1_4][Key2_3][Key3_4][data1_4][data2_4][data3_4]

[Key1_4][Key2_1][Key3_1][data1_1][data2_1][data3_1]

[Key1_4][Key2_1][Key3_2][data1_2][data2_2][data3_2]

[Key1_4][Key2_1][Key3_3][data1_3][data2_3][data3_3]

[Key1_4][Key2_1][Key3_4][data1_4][data2_4][data3_4]

[Key1_3][Key2_4][Key3_1][data1_1][data2_1][data3_1]

[Key1_3][Key2_4][Key3_2][data1_2][data2_2][data3_2]

[Key1_3][Key2_4][Key3_3][data1_3][data2_3][data3_3]

[Key1_3][Key2_4][Key3_4][data1_4][data2_4][data3_4]

[Key1_3][Key2_2][Key3_1][data1_1][data2_1][data3_1]

[Key1_3][Key2_2][Key3_2][data1_2][data2_2][data3_2]

[Key1_3][Key2_2][Key3_3][data1_3][data2_3][data3_3]

[Key1_3][Key2_2][Key3_4][data1_4][data2_4][data3_4]

[Key1_3][Key2_3][Key3_1][data1_1][data2_1][data3_1]

[Key1_3][Key2_3][Key3_2][data1_2][data2_2][data3_2]

[Key1_3][Key2_3][Key3_3][data1_3][data2_3][data3_3]

[Key1_3][Key2_3][Key3_4][data1_4][data2_4][data3_4]

[Key1_3][Key2_1][Key3_1][data1_1][data2_1][data3_1]

[Key1_3][Key2_1][Key3_2][data1_2][data2_2][data3_2]

[Key1_3][Key2_1][Key3_3][data1_3][data2_3][data3_3]

[Key1_3][Key2_1][Key3_4][data1_4][data2_4][data3_4]

[/code]


anstatt die folgend richtige Ausgabe:

[code=Java]

[Key1_1][Key2_1][Key3_1][data1_1][data2_1][data3_1]

[Key1_2][Key2_2][Key3_2][data1_2][data2_2][data3_2]

[Key1_3][Key2_3][Key3_3][data1_3][data2_3][data3_3]

[Key1_4][Key2_4][Key3_4][data1_4][data2_4][data3_4]

[/code]


Der komplette Code sieht wie folgt aus:

[code=Java]

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.util.HashMap;

import java.util.Iterator;


public class HashMapKey {


  public static void main(String[] args) throws FileNotFoundException, IOException {

    String fastaFile = "inputData.txt";


    BufferedReader br = new BufferedReader(new FileReader(fastaFile));


    HashMap<String, HashMap<String, HashMap<String, String[]>>> huelle =

            new HashMap<String, HashMap<String, HashMap<String, String[]>>>();

    HashMap<String, HashMap<String, String[]>> zwischenschicht =

            new HashMap<String, HashMap<String, String[]>>();

    HashMap<String, String[]> innen =

            new HashMap<String, String[]>();


    String strLine;

    while ((strLine = br.readLine()) != null) {


      String[] line = strLine.replaceAll(" ", "").trim().split(",");


      for (int i = 0; i < line.length; i++) {

        System.out.print("[" + line[i] + "]");

      }


      innen.put(line[2], new String[]{line[3], line[4], line[5]});

      zwischenschicht.put(line[1], innen);

      huelle.put(line[0], zwischenschicht);


      System.out.println();

    }



    System.out.println();

    Iterator huelleIter = huelle.keySet().iterator();


    while (huelleIter.hasNext()) {

      String key1 = huelleIter.next().toString();

      Iterator zwischenschichtIter = huelle.get(key1).keySet().iterator();

      while (zwischenschichtIter.hasNext()) {

        String key2 = zwischenschichtIter.next().toString();

        Iterator innenIter = zwischenschicht.get(key2).keySet().iterator();

        while (innenIter.hasNext()) {

          String key3 = innenIter.next().toString();

          String[] value = innen.get(key3);

          System.out.println("["+key1+"]["+key2+"]["+key3+"]["+value[0]+"]["+value[1]+"]["+value[2]+"]");

        }

      }

    }

  }

}

[/code]


Was habe ich falsch gemacht?



Oben