iteration - Java HashMap - Java Mapの各エントリを効率的に反復処理するにはどうすればよいですか?

Java Hashtable / java / dictionary / collections

Javaで Map インターフェースを実装するオブジェクトがあり、それに含まれるすべてのペアを反復処理したい場合、マップを通過する最も効率的な方法は何ですか?

Barry Chapman



Answer #1
MutableBag<String> result = Bags.mutable.empty();
MutableMap<Integer, String> map = Maps.mutable.of(1, "One", 2, "Two", 3, "Three");
map.forEachKeyValue((key, value) -> result.add(key + value));
Assert.assertEquals(Bags.mutable.of("1One", "2Two", "3Three"), result);

無名のインナークラスを使って、以下のようなコードを書くことができます。

final MutableBag<String> result = Bags.mutable.empty();
MutableMap<Integer, String> map = Maps.mutable.of(1, "One", 2, "Two", 3, "Three");
map.forEachKeyValue(new Procedure2<Integer, String>()
{
    public void value(Integer key, String value)
    {
        result.add(key + value);
    }
});
Assert.assertEquals(Bags.mutable.of("1One", "2Two", "3Three"), result);