私は
Map<String, List<String>> myMap;
リスト内のオブジェクトを取得するのに苦労しています: たとえば、マップから取得できます
String myString = myMap.get("Toyota").toString();
しかし、どうすればリストから取得できますか? リストには、各自動車ブランドのすべてのモデルが含まれているとしましょう。そのリストの項目 0 だけを取得するにはどうすればよいですか?
ありがとう
私は
Map<String, List<String>> myMap;
リスト内のオブジェクトを取得するのに苦労しています: たとえば、マップから取得できます
String myString = myMap.get("Toyota").toString();
しかし、どうすればリストから取得できますか? リストには、各自動車ブランドのすべてのモデルが含まれているとしましょう。そのリストの項目 0 だけを取得するにはどうすればよいですか?
ありがとう
myMap.get("Toyota").get(0)
- そうするべきです。その理由は、myMap
「トヨタ」というキーが指している値を尋ねるからです。定義で定義したように、値は常に型List<String>
であり、呼び出しがオブジェクトをmyMap.get("Toyota")
返すことを意味しList<String>
ます。呼び出しを行うときは、実際にのメソッドをget(0)
呼び出しますget
List<String>
List
を取得してから、その内容を取得する必要があります。
//myMap.get(key).get(listIndex);
// myMap.get("Toyota"); // gets the List object
myMap.get("Toyota").get(0);
したがって、 Map#get()を使用してからList#get()を使用する必要があります。
このステートメントは、 key の値である型をmyMap.get("Toyota")
返します。を使用してリストの最初の要素を取得できますList
Toyota
myMap.get("Toyota").get(0)
基本的に、マップを使用して特定のキーに基づいて値を取得する場合は、マップを反復処理して次のように取得できます。
for (final Entry<String, List<String>> entry : myMap.entrySet()) {
String key = entry.getKey();
List<String> value = entry.getValue();
}
ご覧のとおり、for ループ内にはキーと値の両方があります。その後、ここでさらに処理を行うことができます。