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

Java 读取文本文件并存储在hashmap中。然后按顺序排序,java,io,hashmap,comparator,Java,Io,Hashmap,Comparator,文件如下所示: name1 134.2 name2 456.7 name3 265.3 ... ... 我读取文本文件并存储在HashMap中 之后,我想按顺序排序(按最大值排序),但问题是,因为我按字符串对值排序,所以无法进行比较。 那么..有没有办法将textfile的值以双精度或整数形式放入hashmap import java.io.*; import java.util.*; class Test { public static void main(Stri

文件如下所示:

name1   134.2
name2   456.7
name3   265.3
...
...
我读取文本文件并存储在HashMap中 之后,我想按顺序排序(按最大值排序),但问题是,因为我按字符串对值排序,所以无法进行比较。 那么..有没有办法将textfile的值以双精度或整数形式放入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);
    }
}
import java.io.*;
导入java.util.*;
课堂测试
{
公共静态void main(字符串[]args)引发FileNotFoundException{
Scanner Scanner=新扫描仪(新文件阅读器(“score.txt”);
HashMap=newHashMap();
while(scanner.hasNextLine()){
String[]columns=scanner.nextLine().split(“\t\t”);
map.put(列[0],列[1]);
}
系统输出打印项次(map);
}
}
是,使用
HashMap
输入值时,使用
double.parseDouble()
将它们转换为double

(您可以使用
Float
而不是
Double
,但通常使用Double更有意义)。

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

(您也可以使用
Float
而不是
Double
,但通常使用Double更有意义)。

不保证顺序:

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

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

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

不保证顺序:

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

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

这将允许您加载对象,然后只调用对自定义对象列表进行排序