0

文件是这样的:

name1   134.2
name2   456.7
name3   265.3
...
...

我读取了文本文件并存储在 HashMap 中,然后我想按顺序排序(按最大值),但问题是因为我对字符串中的值进行排序,所以我无法比较它。那么..有没有办法将文本文件的值以双精度或整数形式放入哈希图中?

import java.io.*;
import java.util.*;


class Test 
{
    public static void main(String[] args) throws FileNotFoundException {

Scanner scanner = new Scanner(new FileReader("score.txt"));

        HashMap<String, String> map = new HashMap<String, String>();

        while (scanner.hasNextLine()) {
            String[] columns = scanner.nextLine().split("\t\t");
            map.put(columns[0], columns[1]);
        }

        System.out.println(map);
    }
}
4

2 回答 2

3

是的,使用HashMap<String,Double>and 输入值时,使用 将它们转换为 double Double.parseDouble()

(你可以用Float而不是做同样的事情Double,但使用 Double 通常更有意义)。

于 2012-11-22T13:28:13.387 回答
1

HashMap不保证顺序:

此类不保证地图的顺序;特别是,它不保证订单会随着时间的推移保持不变。

这意味着对哈希图进行排序将毫无用处。如果您需要加载这样的键值对,您可以考虑实现自己的类,该类具有必需的字段并实现Comparible接口。

这将允许您加载对象,然后调用Collections.sort()对自定义对象列表进行排序。

于 2012-11-22T13:31:44.437 回答