我正在读取一个包含多列的文本文件,并将信息存储在一个数组中
文件看起来像这样
Player | Team
---------| ---------
PlayerA | Team1
PlayerA | Team2
PlayerB | Team3
PlayerC | Team4
PlayerC | Team5
如您所见,每个玩家都有多个团队。我试图逐行读取此文件,以便在文件末尾有一个包含三个玩家(A、B 和 C)的列表,每个玩家都有相应的团队。
类:
Player - with Name and List<Team> (getter setter for both)
Team - with Name (getter and setter)
我无法弄清楚何时创建 Player 和 Team 类以及记录何时更改玩家名称的逻辑
最佳答案
你可以封装你的person
和 team
在两个类(class)里面Person
和 Team
..
然后,您可以使用 Map<Person, List<Team>>
为每个人维护不同的团队..
Map<Person, List<Team>> mapping = new HashMap<>();
// Read each line from file..
// Get Person and Team object..
// Assuming that you have your `Person` object in person and `Team` object in team
// You need a Comparator for `Person` class to check for `containment`..
if (mapping.contains(person)) {
// Person already exist.. Update the list of Team he has
mapping.get(person).add(team);
} else {
// New entry.. create a new list.. and add it to map..
List<Team> teamList = new ArrayList<>();
teamList.add(team);
mapping.put(person, teamList);
}
注意:- 你需要有一个 Comparator
为你的 Person
要比较的类..
我想我已经给了你一个工作的基础..剩下的你需要变通..如何填充你的对象..如何实现比较器..等等..
关于java - 使用逻辑读取具有多列的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12764752/