Java 为现金存款列表指定姓氏

Java 为现金存款列表指定姓氏,java,data-structures,Java,Data Structures,我在Java中工作,我有一个txt文件,其中包含近70万行,如下所示: Kowalski 1500 Kowalski 1200 Smith 3200 Black 2200 Kowalski 1100 ... 我需要任何数据结构,为现金存款列表指定姓氏 [Kowalski] => [1500, 1200, 1100, ...] [Smith] => [3200, ...] [Black] => [2200, ...] 我不想重新发明轮子,Java提供了任何数据结构吗?您可以使

我在Java中工作,我有一个txt文件,其中包含近70万行,如下所示:

Kowalski
1500
Kowalski
1200
Smith
3200
Black
2200
Kowalski
1100
...
我需要任何数据结构,为现金存款列表指定姓氏

[Kowalski] => [1500, 1200, 1100, ...]
[Smith] => [3200, ...]
[Black] => [2200, ...]
我不想重新发明轮子,Java提供了任何数据结构吗?

您可以使用
地图

Map Map=newhashmap();
Scanner sc=新扫描仪(新文件(“myfile.txt”);
while(sc.hasNextLine()){
字符串名称=sc.nextLine();
int deposit=Integer.parseInt(sc.nextLine());
列表存款=map.get(名称);
如果(存款==null){
存款=新的ArrayList();
地图。放置(名称、存款);
}
存款。添加(存款);
}
您可以使用
地图

Map Map=newhashmap();
Scanner sc=新扫描仪(新文件(“myfile.txt”);
while(sc.hasNextLine()){
字符串名称=sc.nextLine();
int deposit=Integer.parseInt(sc.nextLine());
列表存款=map.get(名称);
如果(存款==null){
存款=新的ArrayList();
地图。放置(名称、存款);
}
存款。添加(存款);
}

你在找
地图
?更好,
多地图
:你在找
地图
?更好,
多地图
Map<String, List<Integer>> map = new HashMap<>();
Scanner sc = new Scanner(new File("myfile.txt"));
while(sc.hasNextLine()) {
    String name = sc.nextLine();
    int deposit = Integer.parseInt(sc.nextLine());
    List<Integer> deposits = map.get(name);
    if(deposits == null) {
        deposits = new ArrayList<>();
        map.put(name, deposits);
    }
    deposits.add(deposit);
}