gpt4 book ai didi

java - 如何在 Java 中为 .txt 文件的每个唯一列值创建 ArrayList?

转载 作者:行者123 更新时间:2023-12-01 08:56:14 25 4
gpt4 key购买 nike

我正在编写一个逐行读取 .txt 文件的程序,并且我想为一列的每个“唯一”值创建一个 ArrayList

.txt 文件是什么样的:

NAME          AGE          COUNTRY          PHONE NUMBER
Peter 28 USA 00112233
John 25 England 11223344
Justin 22 Australia 22334455
Daisey 24 Canada 33445566
Harry 27 England 44556677
Laura 25 England 55667788
Gary 28 USA 66778899

例如,我想为每个国籍创建一个ArrayList,并以相应的名称作为元素。

所以,这个:

ArrayList USA:       Peter, Gary
ArrayList England: John, Harry, Laura
ArrayList Australia: Justin
ArrayList Canada: Daisey

我不想在运行程序之前自己创建ArrayLists。因为我正在讨论的真实列有很多不同的值,所以应该创建很多ArrayList。有谁知道我如何让程序为每个独特的国籍创建一个Arraylist,并将相应的名称添加到这个ArrayList中?

最佳答案

嗯,使用域对象会更容易,例如:

class User {
String name;
String country;
int age;
String phone;
// getters and setters omitted
}

在你的代码中的某个地方会有这样的方法:

List<User> readfromFile(String fileName) {
// create User for each read line
}

然后使用 Stream Api 按所需列进行分组,例如:

Map<String, List<User>> usersByCountry = users.stream().collect(Collectors.groupingBy(User::getCountry));

如果您只想按国家/地区对用户名进行分组:

Map<String, List<String>> userNamesByCountry = users.stream().collect(Collectors.groupingBy(User::getCountry, LinkedHashMap::new, Collectors.mapping(User::getName, Collectors.toList())));

关于java - 如何在 Java 中为 .txt 文件的每个唯一列值创建 ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42021090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com