[英]How to read in 1 specific column of a txt file and store into an Array or ArrayList [Java]
[英]How to create an ArrayList for every unique column value of a .txt file in Java?
我正在編寫一個程序,逐行讀取.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())));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.