Ваш подход при хранении данных ужасен. В вашем столе вы в основном показываете, что собираетесь использовать 2011 как свой ключ ... так и сделайте это!
Другая проблема заключается в том, что вы не должны использовать строки с вкладками на карте, чтобы разграничить различные данные. Более простой способ, который является более логичным, - хранить данные с разделителями табуляции в списке, без вкладок.
Вот что вы пытаетесь сделать, показывая, что вы можете добавить материал в список до или после добавления его на карту.
HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
ArrayList<String> titles2011 = new ArrayList<String>();
titles2011.add("Almayer's Folly");
map.put("2011", titles2011);
map.get("2011").add("Faust");
System.out.println("Year\tTitle");
for (String year : map.keySet()) {
for (String title : map.get(year)) {
System.out.println(year+"\t"+title);
}
}
Я также рекомендую прочитать начало java.util.map и java.util.HashMap. Как и для того, чтобы посмотреть, как и для чего стоит hash table, а точнее, как бороться с коллизиями (что у вас будет, как только вы узнаете, как правильно использовать хеш-таблицу).
Домашнее задание? Если это так, вы должны пометить его как таковой. Кроме того, что вы пробовали до сих пор и с какими проблемами вы сталкиваетесь? – maasg