读取文本文件并通过HashMap获取Distance值

时间:2012-11-23 21:02:40

标签: java

我的这个文本文件(dis.txt)包含:

    1="A" (Z75)(T118)(S140)
    2="B" (U85)(G90)(F211)(P101)
    3="C" (P138)(D120)(R146)
    4="D" (M75)

这些数字是A和A之间的示例距离的距离。 Z是75

我不会通过java程序读取这些距离和城市,如(Z75)(T118)(S140)我认为HashMap在我创建HashMap之后对我的问题有好处,因为我看到我写了myMap.get(“A”);我不会给我结果(Z75)(T118)(S140)。 我希望你理解我的问题,谢谢......

    import java.io.FileInputStream;
    import java.util.HashMap;
    import java.util.Properties;

    public class nodes {

    public static void main(String[] args) {

    Properties pro = new Properties();
    {

    try {
    pro.load(new FileInputStream("dis"));
    } catch (Exception e) {
    System.out.println(e.toString());
    }
    for (int i = 0; i <= 13; i++) {
    String abu = pro.getProperty("" + i);
    //System.out.println(abu);
    }
    HashMap<String, String> myMap = new HashMap<String, String>();
    myMap.get("A");
    myMap.get("B");
    myMap.get("C");
    myMap.get("D");


    System.out.println(myMap.get("A"));
    System.out.println(myMap.get("B"));
    System.out.println(myMap.get("C"));
    System.out.println(myMap.get("D"));


    }
    }

    }

1 个答案:

答案 0 :(得分:1)

当然,您需要先填充HashMap,然后才能从中获取任何数据。

在循环中,您要为每个属性读取值,请将数据放入Map。 并且始终在abstract上为reference type使用LHS类型。使用Map代替HashMap

Map<String, String> myMap = new HashMap<String, String>();

for (int i = 1; i <= 13; i++) {  // Start loop from 1, as properties in txt file are from 1
    String abu = pro.getProperty("" + i);  

   // Split the string on space, and put 1st and 2nd element of array 
   // as `key-value` pair in HashMap
   String[] arr = abu.split(" ");
   myMap.put(arr[0], arr[1]);
}

// Now you can fetch the data
for (String str: myMap.keySet()) {
     System.out.println(myMap.get(str));
}