gpt4 book ai didi

java - 在java中创建一个二维表

转载 作者:行者123 更新时间:2023-12-01 10:23:19 27 4
gpt4 key购买 nike

我遇到了一个令我困惑的问题。在 Java 中,我正在读取一个如下所示的 CSV 文件(尽管更长):

Task | Assignee
1 | A
2 | A
3 | B
4 | B
5 | C

使用OpenCSV ,我将受让人存储为哈希集,因为我想要一个代表所有受让人且不重复的集合。我已将任务存储为 ArrayList。现在,我想用它制作一个表格,以便:

Assignee | Task
A | 1, 2
B | 3, 4
C | 5

最好的方法是什么,以便我可以查找属于选定受托人的任务?

最佳答案

我对你的描述感到很困惑。

I have stored Assignees as a HashSet as I want to have a set that represents all my assignees without duplicates.

好的,这意味着您有 HashSet其中包含 { A, B, C }

And I have stored the Tasks as an ArrayList.

所以你有一个ArrayList其中包含 { 1, 2 ,3, 4, 5 } .

如果我理解正确的话,我必须指出这种方法不会给你带来任何好处,因为你破坏了任务和受让人之间的映射。
我建议对此采取另一种方法。使用HashMap<String, List<String>>受让人为Key任务列表为 Value .

HashMap<String, List<String>> taskBook = new HashMap<>();

// read from your csv File a new Line as array containing [ task, asssignee ]
// String[] line = csvReader.read ...
// and add it to taskBook like this:

String task = line[0];
String assignee = line[1];

if(taskBook.containsKey(assignee)){
List<String> taskList = taskBook.get(assignee);
taskList.add(task);
} else {
List<String> taskList = new ArrayList<String>();
taskList.add(task);
taskBook.put( assignee, taskList );
}

[...]

// then you can get all tasks of an assignee like this:
List<String> tasksOf_A = taskBook.get("A");

关于java - 在java中创建一个二维表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35459140/

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