假设有“staffId”、“subject”、“sessionTime”三个变量
例子是:
<9600001, info2001, Tue3>,
<9600001, info2002, Wed4>,
<9600002, info2001, Wed2>,
<9600001, info2001, Thu9>,
<9600001, info2003, Fri10>,
<9600002, info2004, Wed4>
最终输出应该是:
STAFF_ID HOURS
9600002 4
9600001 7
计算:观察员工 9600001 有 4 个实际 session ,并且涉及 3 个不同的主题,所以这个 共计 4+3=7 小时。
为了解决这个问题,我决定使用嵌套的 HashMap,比如
Map<Integer, Map<String, String>> submission = new HashMap<Integer, TreeMap<String, String>>();
但问题在于,树形图会替换其先前的值,因为该值必须是唯一的。例如,当我把
<9600001, info2001, Tue3> 和 <9600001, info2001, Thu9> 进入 map ,
在hash-map中,应该有
9600001,info2001 - 周二和周四
但是之前的值被替换了,所以只有一个值存在:
9600001,info2001 - 周四
谁能告诉我如何解决这个问题?
我应该使用哪种数据结构?
最佳答案
使用 List
记录。
class Record {
int staffId;
String subject;
String sessionTime;
}
List<Record> submissions = new ArrayList<>();
List
的或Map
class Record {
String subject;
String sessionTime;
}
Map<Integer, List<Record>> submissions = new HashMap<>();
关于java - Java中应该使用哪种数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47217382/