读取文本文件并存储在hashmap中。 然后按顺序排序

文件是这样的:

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

我读了文本文件并存储在HashMap之后,我想按顺序排序(按最高值),但问题是因为我在String中对值进行排序,我无法比较它。 那么..有没有办法将textfile的值以double或integerforms放入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 map = new HashMap(); while (scanner.hasNextLine()) { String[] columns = scanner.nextLine().split("\t\t"); map.put(columns[0], columns[1]); } System.out.println(map); } } 

是的,使用HashMap ,在放入值时,使用Double.parseDouble()将它们转换为double。

(您可以使用Float而不是Double执行相同的操作,但使用Double通常更有意义)。

HashMap不保证顺序:

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

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

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