まず、私は少しあなたの宣言を修正してみましょう:
List<Map<String, List<String>>> listOfMapOfList =
new HashList<Map<String, List<String>>>();
コンクリートクラス(HashMap
)を1回だけ使用していることに注意してください。インターフェイスを使用して、後で実装を変更できるようにすることが重要です。
これで、要素をリストに追加したいのですか?要素はマップなので、作成する必要があります。
Map<String, List<String>> mapOfList = new HashMap<String, List<String>>();
ここでマップに値を設定します。
listOfMapOfList.add(mapOfList);
しかし:今、我々はリストにマップを追加する準備ができている、
mapOfList.put("mykey", Arrays.asList("one", "two", "three"));
OKを:幸いにも、あなたはそう、あなたが個別にリストを作成する必要があり、あなたのためのリストを作成するユーティリティを使用することができます。
今すぐ複雑なコレクションを作成しないようにしてください。未来について考える:内部マップを別のものに変更したり、設定するなどして、おそらく内部マップを変更する必要があります。これにより、コードの重要な部分を書き直すことになります。代わりにあなたのデータを含むクラスを定義し、1次元コレクションに追加:
のは、あなたのクラス(単なる例として)Student
呼ぶことにしましょう:
Collection<Student> students = new ArrayList<Student>();
:今
public Student {
private String firstName;
private String lastName;
private int studentId;
private Colectiuon<String> courseworks = Collections.emtpyList();
//constructors, getters, setters etc
}
を簡単なコレクションを定義することができます
将来的にあなたがそれを行う、キーがstudentId
あるマップにあなたの学生を配置する場合:
Map<Integer, Student> students = new HashMap<Integer, Student>();
このフォームのマップの一覧が必要ですか? –
私はあなたがjavaを使用していると仮定し、あなたの '' 'は実際に' <'であるべきです。 – CodesInChaos
ええ.. java .. '<'が正しく表示されないので、私は '(' – user2376600