{"id":1791,"date":"2018-07-18T18:23:04","date_gmt":"2018-07-18T10:23:04","guid":{"rendered":"http:\/\/ufqi.com\/blog\/?p=1791"},"modified":"2018-07-19T13:45:57","modified_gmt":"2018-07-19T05:45:57","slug":"java-foreach-final","status":"publish","type":"post","link":"https:\/\/ufqi.com\/blog\/java-foreach-final\/","title":{"rendered":"-Java forEach\u4e2d Lambda Expr\u4e2d\u7684 final\u53d8\u91cf\u8981\u6c42"},"content":{"rendered":"<p>\u672c\u6587\u662f\u5173\u4e8e -Java Lambda Expression\u5728forEach\u65b9\u6cd5\u7684\u5e94\u7528\u8ba8\u8bba\u3002\u5bf9\u6bd4\u5176\u4ed6\u7f16\u7a0b\u8bed\u8a00\u7684foreach \u64cd\u4f5c(\u6587\u672b\u9644\u5e267\u79cd\u4e3b\u8981\u7f16\u7a0b\u8bed\u8a00\u7684Loop HashMap by forEach\u7684\u7a0b\u5e8f\u7247\u6bb5)\uff0cJava 8\u5f15\u5165\u7684\u8fd0\u7528 Lambda Expression\u65b9\u5f0f\u7684 forEach\u64cd\u4f5c\u65b9\u6cd5\u662f\u6700\u63a5\u8fd1\u8bed\u8a00\u6240\u8981\u8868\u8fbe\u7684\u672c\u610f\uff0c\u4e14\u7b80\u6d01\u3001\u76f4\u63a5\u3002<br \/>\u5728\u6301\u7eed\u4f18\u5316 <a href=\"http:\/\/ufqi.com\/naturedns\/search?q=-gwa2\">-GWA2 in -Java<\/a> \u8fc7\u7a0b\u4e2d\uff0c\u7531\u4e8e -GWA2 \u591a\u5c42\u7ed3\u6784\u8bbe\u8ba1\uff0c\u5c42\u95f4\u6570\u636e\u4f20\u9012\u5f88\u591a\u4f9d\u8d56Map\/HashMap\u5b8c\u6210\uff0c\u7ecf\u5e38\u7528\u5230\u8fd9\u4e2a forEach \u5e76\u78b0\u5230\u4e00\u4e9b\u95ee\u9898(\u5f15\u5165\u5916\u90e8\u53d8\u91cf\uff0c\u6709\u6761\u4ef6\u7b5b\u9009\u53ca\u7ec8\u6b62\u7b49)\uff0c\u5179\u8bb0\u5f55\u76f8\u5173\u63a2\u7d22\u8fc7\u7a0b\u5982\u4e0b\u3002<\/p>\n<p>\u901a\u5e38\u5728 -Java \u4e2d\u904d\u5386\u4e00\u4e2a\u6570\u636e\u96c6\u5408\u662f\u5e38\u89c1\u7684\u64cd\u4f5c\u573a\u666f\uff0c\u6bd4\u5982\u904d\u5386\u6570\u7ec4 (<b><a class=\"bigfont\" href=\"https:\/\/ufqi.com\/naturedns\/search?q=-R\/G2ST\" target=\"_blank\">-R\/G2ST<\/a>\u00a0<\/b>)\uff1a<\/p>\n<blockquote>\n<pre>int[] numbers = \r\n             {1,2,3,4,5,6,7,8,9,10};\r\nfor (int item : numbers) {\r\n    System.out.println(\"Count is: \" + item);\r\n}<\/pre>\n<\/blockquote>\n<p>\u518d\u6bd4\u5982\u5e38\u89c4\u7684\u501f\u52a9 keySet\u904d\u5386\u4e00\u4e2akey-value\u7ed3\u6784\u7684 Map \/ Hash, \u54c8\u5e0c (<b><a class=\"bigfont\" href=\"https:\/\/ufqi.com\/naturedns\/search?q=-R\/k2SP\" target=\"_blank\">-R\/k2SP<\/a>\u00a0<\/b>)\uff1a<\/p>\n<blockquote>\n<pre>for (KeyType key : m.keySet()){\r\n    System.out.println(key+\", \"+m.get(key));<br \/>}<\/pre>\n<\/blockquote>\n<p>-R\/k2SP \u5217\u4e3e\u4e86\u4e09\u79cd\u65b9\u6cd5\u8fdb\u884c\u904d\u5386key-value \u7684Map, \u5b9e\u9645\u4e0a\u6839\u636e\u00a0<b><a class=\"bigfont\" href=\"https:\/\/ufqi.com\/naturedns\/search?q=-R\/92SS\" target=\"_blank\">-R\/92SS<\/a>\u00a0 <\/b>\u9875\u9762\u4e0a\u7b2c\u4e8c\u4e2a\u56de\u7b54\u6240\u8fdb\u884c\u7684\u6d4b\u8bd5\uff0c\u5927\u6982\u6709\u5341\u591a\u79cd\u65b9\u6cd5\u53ef\u4ee5\u5b9e\u73b0\u904d\u5386\u4e00\u4e2a key-value \u7684Map. \u8fd9\u4e48\u591a\u65b9\u6cd5\u4e2d\uff0c\u53c8\u4ee5 forEach \u7684\u8868\u8fbe\u6700\u4e3a\u76f4\u63a5\u3001\u9ad8\u6548\uff0c\u6240\u4ee5\u63a8\u8350\u4f7f\u7528 Map.forEach .<\/p>\n<p>forEach \u672c\u8d28\u4e0a\u662f\u5efa\u9020\u4e00\u4e2a Lambda Expression \u5e76\u8fdb\u884c\u8fd0\u7b97\uff0c\u5176\u4e2d Map.forEach \u7b49\u540c\u7684\u8868\u8fbe\u5f0f\u4e5f\u662f\u9488\u5bf9\u00a0 keySet\u7684\u8c03\u7528(\u00a0<a class=\"bigfont\" href=\"https:\/\/ufqi.com\/naturedns\/search?q=-R\/V2SQ\" target=\"_blank\">-R\/V2SQ<\/a>\u00a0)\u3002<\/p>\n<blockquote>\n<pre><code>\/\/- Map.forEach is equivalent to:<br \/>for (Map.Entry&lt;K, V&gt; entry : map.entrySet())\r\n     action.accept(entry.getKey(), entry.getValue());<\/code><\/pre>\n<p>\/\/- an example<br \/>HashMap&lt;String, Integer&gt; hm = new HashMap&lt;String, Integer&gt;();<br \/>hm.forEach((key, val)-&gt;{<br \/>\u00a0 \u00a0 System.out.println(key+&#8221;, &#8220;+val);<br \/>\u00a0 \u00a0 });<\/p>\n<\/blockquote>\n<p>\u7531\u4e8e Lambda Expression \u662f\u4e00\u4e2a enclosing scope\uff0c\u5b83\u4e0e\u4ee3\u7801\u533a\u5757\u5916\u7684\u6c9f\u901a\u6210\u4e3a\u95ee\u9898\uff0c\u5916\u90e8\u53d8\u91cf\u65e0\u6cd5\u5728 Lambda \u5185\u90e8\u8c03\u7528\uff0c\u5185\u90e8\u53d8\u91cf\u4e5f\u65e0\u6cd5\u5728\u5916\u90e8\u8bbf\u95ee\u5230\u3002\u5728\u8fd9\u8fd1\u4e4e\u9694\u79bb\u7684\u8fd0\u884c\u65f6\u73af\u5883\u91cc\uff0c\u8fd8\u7559\u4e86final\u53d8\u91cf\u53ef\u4ee5\u7a7f\u884c\u7684\u7f1d\u9699\uff0c\u5982\u679c\u8981\u5b9e\u73b0\u5c06Lambda Expr\u4e0e\u5916\u90e8\u53d8\u91cf\u8fdb\u884c\u6570\u636e\u4ea4\u6362\uff0c\u5c31\u9700\u8981\u5728\u4ee3\u7801\u533a\u5757\u5916\u90e8\u5b9a\u4e49final\u7c7b\u578b\u53d8\u91cf\u4f5c\u4e3a\u6570\u636e\u4fe1\u606f\u8f7d\u4f53\u3002\u5e38\u89c1\u7684\u5e94\u7528\u6709\u5982\u4e0b\u4e24\u4e2a\u573a\u666f.<\/p>\n<ol>\n<li><strong>\u5c06Map\/HashMap\u7684\u6570\u636e\u904d\u5386\u5e76\u52a0\u5de5<br \/><\/strong>\u4f8b\u5b50\u7a0b\u5e8f\uff1a<br \/>\n<blockquote><p>HashMap&lt;String, Integer&gt; hm = new HashMap&lt;String, Integer&gt;();<br \/>final HashMap&lt;String, Integer&gt; hm2 = new HashMap&lt;String, Integer&gt;();<br \/>hm.forEach((key, val)-&gt;{<br \/>\u00a0 \u00a0 System.out.println(key+&#8221;, &#8220;+val);<br \/>\u00a0 \u00a0 hm2.put(key, val + 1);<br \/>\u00a0 \u00a0 });<\/p><\/blockquote>\n<p>\u501f\u52a9 Lambda Expression \u5bf9 final\u53d8\u91cf\u7684\u652f\u6301\uff0c\u53ef\u4ee5\u5bb9\u6613\u5730\u5c06\u904d\u5386\u5e76\u52a0\u5de5\u540e\u7684\u6570\u636e\u4e2d\u8f6c\u53d6\u51fa\u505a\u8fdb\u4e00\u6b65\u7684\u64cd\u4f5c. <br \/>final \u53d8\u91cf\u7531\u4e8e\u65e0\u6cd5\u518d\u6b21\u51fa\u73b0\u5728\u8d4b\u503c\u8bed\u53e5\u7684\u5de6\u8fb9\uff0c\u4e5f\u5373\u65e0\u6cd5\u5bf9\u5bf9\u8c61\u505a\u518d\u6b21\u8d4b\u503c\u64cd\u4f5c\u3002\u4f46\u8fd9\u4e0d\u5f71\u54cd\u6211\u4eec\u540e\u7eed\u5c06 hm2\u7684\u503c\u8fdb\u884c\u904d\u5386\u6216\u8005\u5c06\u5176\u590d\u5236\u5230\u53e6\u5916\u4e00\u4e2a\u975efinal\u7684\u5bf9\u8c61\u4e2d\u53bb\uff0c\u5982\u4e0a\u4f8b\u4e2d\u7684 hm.<br \/>\u540c\u6837\u5730\uff0c\u4f5c\u4e3afinal\u7684 hm2 \u65e0\u6cd5\u6574\u4f53\u88ab\u8d4b\u503c\uff0c\u4f46\u53ef\u4ee5\u5bf9\u5176\u672c\u8eab\u8fdb\u884c\u64cd\u4f5c\uff0c\u5982\u4e0a\u4f8b\u4e2d\u7684\uff0c\u901a\u8fc7 hm2.put \u5c06\u67d0\u4e2a\u5143\u7d20\u653e\u5165\u8fd9\u4e2a\u5bb9\u5668\u4e2d\u3002\u7c7b\u4f3c\u7684\u8fd8\u6709\uff0c\u6bd4\u5982 StringBuffer \u7684\u64cd\u4f5c\u3002<\/p>\n<blockquote><p>StringBuffer pageIdsb = new StringBuffer(&#8220;0&#8221;);<br \/> pageList.forEach((k, v)-&gt;{<br \/>\u00a0 \u00a0 HashMap tmphm = (HashMap)v;<br \/>\u00a0 \u00a0 pageIdsb.append(&#8220;,&#8221;).append(tmphm.get(&#8220;id&#8221;));<br \/>\u00a0 \u00a0 });<\/p><\/blockquote>\n<pre>public final class <span class=\"typeNameLabel\">StringBuffer<\/span>\r\nextends <a title=\"class in java.lang\" href=\"https:\/\/docs.oracle.com\/javase\/10\/docs\/api\/java\/lang\/Object.html\">Object<\/a>\r\nimplements <a title=\"interface in java.io\" href=\"https:\/\/docs.oracle.com\/javase\/10\/docs\/api\/java\/io\/Serializable.html\">Serializable<\/a>, <a title=\"interface in java.lang\" href=\"https:\/\/docs.oracle.com\/javase\/10\/docs\/api\/java\/lang\/CharSequence.html\">CharSequence<\/a><\/pre>\n<p>\u7531 StringBuffer \u7c7b\u7684\u5b9a\u4e49\uff08<b><a class=\"bigfont\" href=\"https:\/\/ufqi.com\/naturedns\/search?q=-R\/V2SQ\" target=\"_blank\">-R\/V2SQ<\/a>\u00a0<\/b>\uff09\uff0c\u6211\u4eec\u77e5\u9053\u5176\u662f final \u7c7b\uff0c\u4e8e\u662f\u5728\u521d\u59cb\u5316\u540e\uff0c\u53ef\u4ee5\u5728 Lambda Expr\u4e2d\u901a\u8fc7 pageIdsb.append \u7684\u65b9\u5f0f\u8fdb\u884c\u5176\u503c\u7684\u64cd\u4f5c\u4e0e\u53d8\u5316\u3002<\/p>\n<p><\/li>\n<li><strong>\u6709\u6761\u4ef6\u8fc7\u6ee4\u6216\u63a8\u51fa\u3001\u7ec8\u6b62\u904d\u5386<\/strong><br \/>\u5728\u904d\u5386Map\/HashMap\u7b49\u5bf9\u8c61\u96c6\u5408\u65f6\uff0c\u6709\u65f6\u5019\u9700\u8981\u6709\u6761\u4ef6\u7684\u8fc7\u6ee4\u6216\u8005\u7ec8\u6b62\uff0c\u5982\u679c\u5c06\u5916\u90e8\u7ea6\u675f\u6761\u4ef6\u5e26\u5165\uff1f <br \/>\u53c8\u5982\u4f55\u5b9a\u4e49\u5185\u90e8\u81ea\u5faa\u73af\u53d8\u91cf\uff1f<br \/>\u4e00\u79cd\u53ef\u884c\u7684\u65b9\u5f0f\uff0c\u4f9d\u7136\u662f\u4f7f\u7528 final\u53d8\u91cf\uff0c\u7136\u540e\u57fa\u672c\u53d8\u91cf\u7c7b\u578b\uff0c\u5982\u679c\u5b9a\u4e49\u4e3afinal\u4e4b\u540e\u5219\u4e0d\u80fd\u88ab\u76f4\u63a5\u4fee\u6539\uff0c\u65e0\u6cd5\u6ee1\u8db3\u5faa\u73af\u4f53\u5185\u8ba1\u6570\u7684\u9700\u6c42.<br \/>\u4e8e\u662f\u5c31\u9700\u8981\u8bbe\u8ba1\u4e00\u4e2a\u590d\u5408final\u7c7b\u7684\u53d8\u91cf\uff0c\u5176\u6210\u5458\u4e00\u4e2a\u8d1f\u8d23\u7ea6\u675f\u6761\u4ef6\uff0c\u53e6\u5916\u4e00\u4e2a\u8d1f\u8d23\u5faa\u73af\u8ba1\u6570\u3002<br \/>\n<blockquote><p>HashMap&lt;String, Integer&gt; hm = new HashMap&lt;String, Integer&gt;();<br \/>final HashMap&lt;String, Integer&gt; hm2 = new HashMap&lt;String, Integer&gt;(){{<br \/>\u00a0 \u00a0 put(&#8220;iCount&#8221;, 0);<br \/>\u00a0 \u00a0 put(&#8220;maxCount&#8221;, 4);<br \/>\u00a0 \u00a0 }};<br \/>hm.forEach((key, val)-&gt;{<br \/>\u00a0 \u00a0 int iCount = Wht.parseInt(hm2.get(&#8220;iCount&#8221;));<br \/>\u00a0 \u00a0 int maxCount = Wht.parseInt(hm2.get(&#8220;maxCount&#8221;));<br \/>\u00a0 \u00a0 if(iCount &lt; maxCount){<br \/>\u00a0 \u00a0 \u00a0 \u00a0 System.out.println(key+&#8221;, &#8220;+val);<br \/>\u00a0 \u00a0 }<br \/>\u00a0 \u00a0 hm2.put(&#8220;iCount&#8221;, iCount + 1);<br \/>\u00a0 \u00a0 });<\/p><\/blockquote>\n<p>\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u7a0b\u5e8f\u4e2d\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u5faa\u73af\u4f53\u5185\u8ba1\u6570\u53d8\u91cf iCount \u548c \u6ee1\u8db3\u9000\u51fa\u6761\u4ef6 maxCount \u6bcf\u6b21\u5faa\u73af\u65f6\u53d6\u51fa\u5e76\u505a\u5bf9\u6bd4\uff0c\u6bcf\u6b21\u5faa\u73af\u65f6\uff0c iCount++ \u3002<br \/>\u4e0a\u9762\u4f8b\u5b50\u7a0b\u5e8f\u4e2d\u7684 Wht.parseInt \u662f -GWA2 \u7684\u57fa\u7840\u8bbe\u65bd\u7c7b\uff0c\u53ef\u4ee5\u5728 -GWA2@Github \uff08<b><a class=\"bigfont\" href=\"https:\/\/ufqi.com\/naturedns\/search?q=-R\/h2SO\" target=\"_blank\">-R\/h2SO<\/a>\u00a0<\/b>\uff09\u4e0b\u8f7d\u5230.<br \/>\u4e0a\u9762\u4f8b\u5b50\u7a0b\u5e8f\u4e2d\u7684hm2 \u7684\u58f0\u660e\u5b9e\u4f8b\u4e2d\uff0c\u901a\u8fc7\u6784\u9020\u65b9\u6cd5\u5e76\u4ee5\u4e00\u4e2a\u533f\u540d\u7c7b\u5b8c\u6210\u4e86\u4e24\u4e2a put\u64cd\u4f5c\u3002\u5173\u4e8e\u533f\u540d\u7c7b Anonymous Class\uff0c\u53c2\u8003 -Java \u6587\u6863\uff08<b><a class=\"bigfont\" href=\"https:\/\/ufqi.com\/naturedns\/search?q=-R\/i2SP\" target=\"_blank\">-R\/i2SP<\/a>\u00a0<\/b>\uff09\uff0c \u5728 -GWA2 in -Java \u91cc\u4e5f\u6709\u4e0d\u5c11\u5e94\u7528\u3002<br \/>\u00a0<\/li>\n<\/ol>\n<p>-Java \u4e2d\u5f15\u5165\u7684 forEach \u64cd\u4f5c\uff0c\u5c3d\u7ba1\u662f\u4ee5 Lambda Expression\u4e3a\u8f7d\u4f53\u7684\u4e00\u4e2a Consumer \/ BiConsumer\u5bf9\u8c61\uff0c\u8fd0\u884c\u5728\u4e00\u4e2a enclosing scope\uff0c\u4f9d\u9760\u53ef\u4ee5\u5916\u90e8 final \u53d8\u91cf\u8fd9\u4e2a\u6e20\u9053\uff0c\u53ef\u4ee5\u63d0\u4f9b\u5ab2\u7f8e\u5176\u4ed6\u7f16\u7a0b\u8bed\u8a00\u4e00\u6837\u7684 foreach \u6548\u679c\uff0c\u5bf9\u589e\u52a0\u7a0b\u5e8f\u53ef\u8bfb\u6027\u3001\u53ef\u7ef4\u62a4\u6027\u6709\u4e00\u5b9a\u7684\u5e2e\u52a9\uff0c\u5df2\u6709\u7684\u8bc4\u6d4b forEach\u4e5f\u8868\u73b0\u51fa\u4e0d\u9519\u7684\u6027\u80fd\uff0c\u503c\u5f97\u66f4\u591a\u5730\u5e94\u7528\u3002<\/p>\n<p>&nbsp;<\/p>\n<p><img src=\"https:\/\/ufqi.com\/blog\/wp-content\/uploads\/2016\/09\/gwa2-logo-201606.v2.png\" \/><\/p>\n<p>-GWA2 \u662f\u201d\u901a\u7528\u7f51\u7edc\u5e94\u7528\u67b6\u6784( General Web Application Architeture )\u201d\uff0c\u57fa\u4e8e -GWA2 \u53ef\u4ee5\u8f7b\u4fbf\u6784\u5efa\u5404\u79cd\u7f51\u7edc\u5e94\u7528\u7a0b\u5e8f,<br \/>\u5305\u62ec\u590d\u6742\u7684\u5728\u7ebf\u8d2d\u7269\u5546\u57ce\u3001\u00a0\u65c5\u6e38\u4ea4\u6613\u5e73\u53f0\u3001\u793e\u7fa4\u6216\u8005\u793e\u4ea4\u7f51\u7ad9\u548c\u65b0\u95fb\u8d44\u8baf\u7f51\u7ad9\u7b49\uff0c<br \/>\u4e5f\u5305\u62ec\u5404\u79cd\u4f01\u4e8b\u4e1a\u5355\u4f4d\u7f51\u4e0a\u95e8\u6237\uff0c\u5728\u7ebf\u4ea4\u4e92\u53ca\u670d\u52a1\u4f5c\u4e1a\u7cfb\u7edf\u7b49.<br \/>\u8fd8\u53ef\u4ee5\u5305\u62ec\u4e3aNativeApp\u505a\u670d\u52a1\u5668\u7aef\u652f\u6301, \u751a\u81f3\u662fWebApp\u7684\u5168\u90e8.<br \/>-GWA2 \u662f\u4e3a\u6570\u4e0d\u591a\u7684\u652f\u6301\u8de8\u5f00\u53d1\u8bed\u8a00\u7684\u5e94\u7528\u6846\u67b6\uff0c\u76ee\u524d\u652f\u6301 -Java, -PHP, -Perl, -Aspx and -Python .<\/p>\n<p>-GWA2 is a \u201cGeneral Web Application Architecture\u201d and based on -GWA2 developers can easily build a variety of network applications,<br \/>including complex online shopping malls, travel trading platforms, community or social networking sites and news information sites, etc.<br \/>Also the applications include various online portals of enterprises and institutions, online interaction and service operations systems.<br \/>Moreover it contains server-side support for NativeApp, or even all of the WebApp.<br \/>-GWA2 is one of the web frameworks which provide cross-language support for -Java, -PHP, -Perl, -Aspx and -Python at present.<\/p>\n<p><strong>-GWA2 is E.A.S.Y\u00a0<\/strong><br \/><b>Easy Along, Swift Yield<br \/><\/b>\u8f7b\u677e\u542f\u52a8, \u5feb\u901f\u4ea7\u51fa.<\/p>\n<hr \/>\n<p>(1) Loop HashMap in PHP ****<\/p>\n<blockquote>\n<p>$hm = array(&#8220;a&#8221;=&gt;1, &#8220;b&#8221;=&gt;2, &#8220;c&#8221;=&gt;3);<br \/>foreach($hm as $key=&gt;$val){<br \/>\u00a0 \u00a0 print &#8220;key:$key , val:$val\\n&#8221;;<br \/>}<\/p>\n<\/blockquote>\n<p>(2) Loop HashMap in Perl ***<\/p>\n<blockquote>\n<p>my %hm = (&#8220;a&#8221;=&gt;1, &#8220;b&#8221;=&gt;2, &#8220;c&#8221;=&gt;3);<br \/>foreach my $key (keys %hm){<br \/>\u00a0 \u00a0 my $val = $hm{$key};<br \/>\u00a0 \u00a0 print &#8220;key:$key , val:$val\\n&#8221;;<br \/>}<\/p>\n<\/blockquote>\n<p>(3) Loop HashMap in Swift *****<\/p>\n<blockquote>\n<p>let hm = [&#8220;a&#8221;:1, &#8220;b&#8221;:2, &#8220;c&#8221;:3];<br \/>for (key, val) in hm {<br \/>\u00a0 \u00a0 print(&#8220;key:\\(key) , val:\\(val)\\n&#8221;);<br \/>}<\/p>\n<\/blockquote>\n<p>(4) Loop HashMap in Python ***<\/p>\n<blockquote>\n<p>hm = {&#8220;a&#8221;:1, &#8220;b&#8221;:2, &#8220;c&#8221;:3};<br \/>for key in hm:<br \/>\u00a0 \u00a0 print(&#8220;key:{} , val:{}&#8221;.format(key, hm[key]));<\/p>\n<\/blockquote>\n<p>(5) Loop HashMap in C++ *<\/p>\n<blockquote>\n<p>std::map&lt;std::string, std::int&gt; hm {<br \/>\u00a0 \u00a0 {&#8220;a&#8221;, 1},<br \/>\u00a0 \u00a0 {&#8220;b&#8221;, 1},<br \/>\u00a0 \u00a0 {&#8220;c&#8221;, 3}<br \/> };<br \/>for(const auto&amp; key : hm){<br \/>\u00a0 \u00a0 std::cout &lt;&lt; &#8220;key:&#8221; &lt;&lt; key.first<br \/>\u00a0 \u00a0 \u00a0 \u00a0 &lt;&lt; &#8221; , val:&#8221; &lt;&lt; key.second<br \/>\u00a0 \u00a0 \u00a0 \u00a0 &lt;&lt; &#8220;\\n&#8221;;<br \/> }<\/p>\n<\/blockquote>\n<p>(6) Loop HashMap in JavaScript ***<\/p>\n<blockquote>\n<p>var hm = {&#8220;a&#8221;:1, &#8220;b&#8221;:2, &#8220;c&#8221;:3};<br \/>for (var key in hm){<br \/>\u00a0 \u00a0 console.log(&#8220;key:&#8221;+key+&#8221; , val:&#8221;+hm[key]);<br \/> };<\/p>\n<\/blockquote>\n<p>(7) Loop HashMap in Java ***<\/p>\n<blockquote>\n<p>HashMap&lt;String, Integer&gt; hm = new HashMap&lt;String, Integer&gt;(){{<br \/>\u00a0 \u00a0 put(&#8220;a&#8221;, 1&#8243;);<br \/>\u00a0 \u00a0 put(&#8220;b&#8221;, 2);<br \/>\u00a0 \u00a0 put(&#8220;c&#8221;, 3);<br \/>}};<br \/>hm.forEach((key, val)-&gt;{<br \/>\u00a0 \u00a0 System.out.println(key+&#8221;, &#8220;+val);<br \/>\u00a0 \u00a0 });<\/p>\n<\/blockquote>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6587\u662f\u5173\u4e8e -Java Lambda Expression\u5728forEach\u65b9\u6cd5\u7684 &hellip; <a href=\"https:\/\/ufqi.com\/blog\/java-foreach-final\/\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[42,6,2],"tags":[266,265,86,267,146,268],"_links":{"self":[{"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/posts\/1791"}],"collection":[{"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/comments?post=1791"}],"version-history":[{"count":17,"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/posts\/1791\/revisions"}],"predecessor-version":[{"id":1810,"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/posts\/1791\/revisions\/1810"}],"wp:attachment":[{"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/media?parent=1791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/categories?post=1791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ufqi.com\/blog\/wp-json\/wp\/v2\/tags?post=1791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}