2012-03-29 9 views
0

マップに入力された日に基づいてファイルをソートできるようにしたい。キーはその日で、値はそれぞれの日に追加されたn個のファイルのリストです。しかし、一度にリストにファイルを追加できるようにする必要がありますが、私は構文に固執しています。 Map.put()内からList.add()を呼び出すにはどうすればよいですか?私のコードは次のとおりです。NavigableMapのListに単一の要素を追加する

public static NavigableMap<String, List<File>> myFiles = new TreeMap<>(); 
String today = new Date().toString(); 
File currentFile; 
myFiles.put(today, currentFile); //problem here adding currentFile 
+0

既にリストがあるかどうかを確認する必要があります。あるいは、GuavaまたはApache Commons Collectionsから 'MultiMap'を使用してください。 – biziclop

+0

私は本当にあなたが何を求めているのかはっきりしていません... –

+0

NavigableMapで同じキーを共有するには複数のファイルが必要ですが、ファイルを作成するときに1つずつ追加する必要があります。一日の終わりに収集します。 – Ted

答えて

1

これは、セーフタイプ(ジェネリックを使用)のためです。 todayはファイルのリストを指し、そのリストに1つのファイルを追加するだけです。

todayがマップであり、それは、その後、バッキングリストを追加し、そのリストにcurrentFileを追加していない場合ならば、私は、最初のチェックにあなたを推薦する:

if (!myFiles.containsKey(today)) 
    myFiles.put(today, new ArrayList<File>()); 

myFiles.get(today).add(currentFile); 
1

次の2つのレベルを持っている必要があり、最初にその日のリストがあるかどうかをチェックし、そうでない場合は空のリストを作成してセットに追加します。

関連する問題