0
私はJavaコレクションフレームワークを使用しています。私は、次のコードを持っている:JCFマップでのArrayListの使用
private Map<String, List<Song>> byArtist() {
Map<String, List<Song>> byArtist = new HashMap<>();
for (Song song : mSongs) {
List<Song> artistSongs = byArtist.get(song.getArtist());
if (artistSongs == null) {
artistSongs = new ArrayList<>();
byArtist.put(song.getArtist(), artistSongs);
}
artistSongs.add(song);
}
return byArtist;
}
コードが正常に動作しますが、私は理解していない部分は、我々は唯一のアーティストを追加する場合は地図byArtist
が更新されていると、曲が使用している方法ですメソッドをif
の状態にして、artistSongs
変数の新しいインスタンスを作成する場合は、他のインスタンスはどのようにどこに格納されていますか?
にリストインスタンスのすべてのメソッドが作成するマップに格納されているを変更する必要があります。何があなたにはっきりしていませんか? –
あなたは歌のリスト(msongs)に行きます。 アーティストが現在のマップ(byArtist)に存在しない場合は、新しい曲のリストを作成し、そのペアをbyArtist Mapに配置します。 それ以外の場合は、現在の既存の曲リスト(参考にして地図にある)に曲を入れるだけです。 –
@Mick - あなたのコメントとBerlyeyのコメントを組み合わせた後に意味があります。速やかなご返信ありがとうございます。 –