真髄!JavaでMapコレクションを巡る5つの方法
4982 ワード
海に帆をあげる
https://zhangxy.blog.csdn.net...
JavaではすべてのmapがMapインタフェースを実現しているので、すべてのMapは以下のように遍歴することができます.この記事では、JavaでMapの集合を巡る5つの方法について紹介します.サンプルコードで詳しく紹介しています.皆さんの学習や仕事に参考になる学習価値があるので、必要な方は一緒に勉強しましょう.
方式は1はMap.keySetを通じてiteratorを使って遍歴します
結果:
方式2はMap.entrySetを通じてiteratorを使って遍歴する
結果:
方式3はMap.keySetで遍歴する
結果:
方式四For-EAch反復entriesによりMap.entrySetを用いて遍歴する
方式5 lambda式forEachを用いて遍歴する
forEachソース
ソースコードから,この新しい特性は従来の反復方式にシェルを加えたが,コードをより簡単にしたことがわかる.(
まとめ
keySetは実は2回遍歴し、1回目はIteratorオブジェクトに、2回目はhashMapからkeyに対応するvalue値を取り出す.entrySetは一度だけ遍歴しただけで、keyとvalueをentryに入れ、効率が高くなりました.
values()はV値集合を返し、list集合オブジェクトである.keySet()はK値集合を返し、Set集合オブジェクトである.entrySet()は、K-V値の組合せ集合を返します.
レベルが限られているため、本ブログには不足が避けられません.皆さん、教えてください.
おすすめ読書
IDEA 2020.2.3解読、IDEA 2020.2起動解読、IDEA起動コード
素晴らしいですね。このJavaサイトには、どんなプロジェクトもあります。https://markerhub.com
このB駅のUP主、javaっていいですね!
B局15万再生量、SpringBoot+Vue前後端分離完全入門チュートリアル!
素晴らしい!最新版Javaプログラミング思想はオンラインで見ることができます!
2021年最新の質問企業面接問題大全及び回答
https://zhangxy.blog.csdn.net...
JavaではすべてのmapがMapインタフェースを実現しているので、すべてのMapは以下のように遍歴することができます.この記事では、JavaでMapの集合を巡る5つの方法について紹介します.サンプルコードで詳しく紹介しています.皆さんの学習や仕事に参考になる学習価値があるので、必要な方は一緒に勉強しましょう.
方式は1はMap.keySetを通じてiteratorを使って遍歴します
@Test
public void testHashMap1() {
Map map = new HashMap<>();
map.put(001, "Java");
map.put(002, " ");
map.put(003, "Vue");
System.out.println(map);
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()) {
Integer key = iterator.next();
String value = map.get(key);
System.out.println("key = " + key + ", value = " + value);
}
}
結果:
{1=Java, 2= , 3=Vue}
key = 1, value = Java
key = 2, value =
key = 3, value = Vue
方式2はMap.entrySetを通じてiteratorを使って遍歴する
@Test
public void testHashMap2() {
Map map = new HashMap<>();
map.put(001, "Java");
map.put(002, " ");
map.put(003, "Vue");
System.out.println(map);
Iterator> entries = map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry entry = entries.next();
System.out.println(entry);
}
}
結果:
{1=Java, 2= , 3=Vue}
1=Java
2=
3=Vue
方式3はMap.keySetで遍歴する
@Test
public void testHashMap3() {
Map map = new HashMap<>();
map.put(001, "Java");
map.put(002, " ");
map.put(003, "Vue");
System.out.println(map);
for (Integer key : map.keySet()) {
System.out.println("key = " + key + ", value = " + map.get(key));
}
}
結果:
{1=Java, 2= , 3=Vue}
key = 1, value = Java
key = 2, value =
key = 3, value = Vue
方式四For-EAch反復entriesによりMap.entrySetを用いて遍歴する
@Test
public void testHashMap4() {
Map map = new HashMap<>();
map.put(001, "Java");
map.put(002, " ");
map.put(003, "Vue");
System.out.println(map);
for (Map.Entry entry : map.entrySet()) {
System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
}
}
{1=Java, 2= , 3=Vue}
key = 1, value = Java
key = 2, value =
key = 3, value = Vue
方式5 lambda式forEachを用いて遍歴する
@Test
public void testHashMap5() {
Map map = new HashMap<>();
map.put(001, "Java");
map.put(002, " ");
map.put(003, "Vue");
System.out.println(map);
map.forEach((k, v) -> System.out.println("key = " + k + ", value = " + v));
}
forEachソース
default void forEach(BiConsumer super K, ? super V> action) {
Objects.requireNonNull(action);
for (Map.Entry entry : entrySet()) {
K k;
V v;
try {
k = entry.getKey();
v = entry.getValue();
} catch(IllegalStateException ise) {
throw new ConcurrentModificationException(ise);
}
action.accept(k, v);
}
}
ソースコードから,この新しい特性は従来の反復方式にシェルを加えたが,コードをより簡単にしたことがわかる.(
) まとめ
entrySet Map KV
(記事の4番目の方法)は、keySet方式ではなく遍歴する.keySetは実は2回遍歴し、1回目はIteratorオブジェクトに、2回目はhashMapからkeyに対応するvalue値を取り出す.entrySetは一度だけ遍歴しただけで、keyとvalueをentryに入れ、効率が高くなりました.
values()はV値集合を返し、list集合オブジェクトである.keySet()はK値集合を返し、Set集合オブジェクトである.entrySet()は、K-V値の組合せ集合を返します.
JDK8, Map.forEach
(記事の5番目の方法).レベルが限られているため、本ブログには不足が避けられません.皆さん、教えてください.
おすすめ読書
IDEA 2020.2.3解読、IDEA 2020.2起動解読、IDEA起動コード
素晴らしいですね。このJavaサイトには、どんなプロジェクトもあります。https://markerhub.com
このB駅のUP主、javaっていいですね!
B局15万再生量、SpringBoot+Vue前後端分離完全入門チュートリアル!
素晴らしい!最新版Javaプログラミング思想はオンラインで見ることができます!
2021年最新の質問企業面接問題大全及び回答