2015-01-04 6 views
0

Я разобрал расписание HTML и загрузил каждый объект Subject в объект класса. Итак, у меня есть массивList моих объектов, который имеет информацию о имени, учителе, ..., ЧАС и ДЕНЬ Теперь я хочу восстановить таблицу, и поэтому мне нужно сначала классифицировать ее. Я думаю, что лучше всего было бы иметь структуру, как это:Multimap of Multimap Java - классифицировать расписание

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

Там могут быть Mutiple предметы в определенный час, поэтому я попытался использовали Multimap из Multimap, но я не могу заявить об этом во время моего для синтаксического анализа.

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

, но он говорит, что HashMultimap имеет частный accesin com.google.common ... я не знаю, как правильно писать это. Я также думал об использовании массива, но мне пришлось бы предварительно объявить его, и я хотел бы построить его во время одного цикла. Любые идеи? Спасибо заранее

ответ

1

Похоже, что вы хотите на самом деле больше 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); 
+0

Я люблю тебя человека! Это работает точно так, как я ожидал! У меня есть еще один квест по этому поводу. Как я могу теперь извлечь свойство объекта на определенные ключи? Допустим, мне нужно имя объекта, который 1 час в понедельник. Я бы ожидал найти его как этот 'timetable.get (" Monday "). Get (" 1 ") [1] .name', но я не уверен, как точно его набирать, потому что это не работает – Hokyjack

+0

Что вы имеете в виду ? В этом месте может быть несколько предметов. Вы можете получить их, написав «Collection themes = timetable.get (« Понедельник »). Get (« 1 »)'. –

+0

yea Я имел в виду, если можно извлечь только свойство, например, первого предмета, который был преподан в тот день, который дал час. Может быть, несколько сокращений, чтобы сделать это за один шаг? или я должен делать временную коллекцию за каждый раз и установить iterable, чтобы найти это? – Hokyjack

Смежные вопросы