java - 将姓氏分配给现金存款列表

标签 java data-structures

我正在使用 Java,我有一个 txt 文件,其中包含近 700 000 行,如下所示:

Kowalski
1500
Kowalski
1200
Smith
3200
Black
2200
Kowalski
1100
...

我需要任何数据结构,将姓氏分配给现金存款列表。

[Kowalski] => [1500, 1200, 1100, ...]
[Smith] => [3200, ...]
[Black] => [2200, ...]

我不想白费力气,Java有提供什么数据结构吗?

最佳答案

您可以使用 Map<String,List<Integer>> :

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);
}

关于java - 将姓氏分配给现金存款列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36037535/

相关文章:

java - 如何使用junit测试java中的注释

c++ - 计算并发读取流中不同元素的数量

c# - 非线性系统 - 如何跟踪委托(delegate)的未知数?

c++ - 一些修改的改变问题

java - 如何实现中值堆

java - 用于 Olap 分析的 Swing 组件

java - 自动配置数据源失败 : 'spring.datasource.url' is not specified

java - 使用 GSON 反序列化嵌套的通用类时的奇怪行为

java - 使用 set OAuth2Credentials 读取数据并将数据写入 Google 表格

data-structures - 计算机研究中数据结构的实际例子?