簡體   English   中英

如何在Java中為.txt文件的每個唯一列值創建ArrayList?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM