辞書(Map)から最大の値を取得 #
辞書(Map)から最大の値を取得する方法についてを示す。
JavaでMapにある値の最大値を取得するには以下の手順で行う。
- Mapのメソッド**values()**を使い、値のみを格納したListを取得する
- その値のListをCollectionsクラスの**max()**メソッドを用いて最大値を取得する(参考:リストの内一番大きい要素を調べる)
Mapクラスのvalues()メソッドは、Mapにある値をCollection(List,Setの親クラス)に格納したものを返すメソッドである。
Collection<V> values()
実行例を以下に示す。
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.Collections;
class Main{
public static void main(String args[]){
Map<String,String> m = new HashMap<>();
m.put("key","value");
m.put("key2","value2");
m.put("key3","value3");
System.out.println(m);
List<String> value = new ArrayList<>(m.values());
String maxval = Collections.max(value);
System.out.println("max value: " + maxval);
}
}
実行結果
> java Main
{key2=value2, key3=value3, key=value}
max value: value3
Pythonでは辞書の関数**values()で値のみのビューオブジェクト(イテラブル)を取得できるので、これに組み込み関数max()**を適用すると、値の最大値を取得できる。
>>> d={'key':'value', 'key2':'value2', 'key3':'value3'}
>>> d
{'key': 'value', 'key2': 'value2', 'key3': 'value3'}
>>>
>>> v=d.values()
>>>
>>> max(v)
'value3'
>>>