>>10です、先ほどはありがとうございました。

>>14の

Map<日付, Integer> m; List<List<項目>> l; とかして
l.get(m.get(key)).get(1)
l.get(m.get(key)).get(2)
l.get(m.get(key) - 1).get(1)

を参考に実装してみたんですが、List<List<項目>> l; のところって、例えば

ArrayList<Integer> koumoku;
ArrayList<List> l;

for(int i=0;i<size;i++){
koumoku.add(i番目の項目1のデータ);
koumoku.add(i番目の項目2のデータ);
l.add(koumoku);
}

ってやると、koumokuにデータがどんどん追加されていってしまいますよね。
なので、koumokuを大きさsizeの配列にしてみたんですが、それだと

koumoku[date_map.get(key)].get(1)
koumoku[date_map.get(key)].get(2) 
koumoku[date_map.get(key)-1].get(1) 

とかでアクセスできてしまうので、
lを作成した意味がないような気がするんですが、なにか根本的なところが間違ってるんでしょうか?