3

A Star Algorithmをjavaプログラムで書きたいのですが、このようにTextファイルから距離を読みたいです

    89  R A
    118 A T
    140 M S
    85  B U

ご覧のとおり、私のテキスト ファイルには 3 つの列がありますが、私が書いたこのコードでは 2 つの列しか得られませんが、上記のように 3 つの列であるすべての列を読みたいと思っています。

List<String> halist = new ArrayList<String>();

File f = new File("mapfile.txt");

FileInputStream fis = new FileInputStream(f);

BufferedInputStream bis = new BufferedInputStream(fis);

dis = new DataInputStream(bis);

while ( (record=dis.readLine()) != null ) {
    Map<Integer, String> hamap = new HashMap<Integer, String>();
    String[] columns = record.split(" ");
    hamap.put(Integer.valueOf(columns[0]), columns[1]);

    for(Map.Entry<Integer,String> m :hamap.entrySet()) {
        System.out.println(m.getKey()+" "+m.getValue());
    }
}
4

2 に答える 2

2

3 番目の列は使用しません

hamap.put(Integer.valueOf(columns[0]), columns[1] +" " + columns[2]);

または、リストのリストを使用できます。

Map<Integer, List<String>> hamap = new HashMap<Integer, List<String>>();

String[] columns = record.split(" ");
List<String> otherColumns = new ArrayList<String>();

for (int i=1; i < columns.length; i++) {
    otherColumns.add(columns[i]);
}

hamap.put(Integer.valueOf(columns[0]), otherColumns);

for(Map.Entry<Integer,List<String>> m :hamap.entrySet()) {
    System.out.println(m.getKey()+" "+m.getValue());
}
于 2012-12-10T21:40:12.367 に答える