Multimap of Multimap Java - 分类时间表

Multimap of Multimap Java - Categorize timetable

我已经解析了 HTML 时间 table 并将每个主题加载到我的 class 对象。 所以我有我的主题的 arrayList,其中包含姓名、老师、...、小时和日期的信息 现在我想重建 table ,所以我需要先对其进行分类。我认为最好的结构是这样的:

Monday: 1: Math, Czech, ...
        2: History
        ...
Tuesday: 1: English, Geo
         2...
...

给定的时间内可以有多个主题,因此我尝试使用Multimap的Multimap,但我无法在解析过程中声明它。

Multimap<String, Multimap<String, Subject>> timetable = HashMultimap.create();
...
for ...
    timetable.put(subject.den, new HashMultimap<>(subject.hod, subject));

但是它说 HashMultimap 有私有访问 com.google.common... 我不知道如何正确地写这个。我也在考虑使用 Array,但我必须预先声明它并且我想在一个 for 循环中构建它。 有任何想法吗?提前谢谢你

看起来你想要的实际上更像是一个Map<String, Multimap<String, Subject>>,在这种情况下你想要

 Map<String, Multimap<String, Subject>> timetable = new HashMap<>();
 for ...
   Multimap<String, Subject> multimap = timetable.get(subject.den);
   if (multimap == null) {
     multimap = HashMultimap.create();
     timetable.put(subject.den, multimap);
   }
   multimap.put(subject.hod, subject);