天天看點

Map集合的四種周遊方式

<code>import</code> <code>java.util.HashMap;</code>

<code>import</code> <code>java.util.Iterator;</code>

<code>import</code> <code>java.util.Map;</code>

<code>public</code> <code>class</code> <code>TestMap {</code>

<code>    </code><code>public</code> <code>static</code> <code>void</code> <code>main(String[] args) {</code>

<code>        </code><code>Map&lt;Integer, String&gt; map = </code><code>new</code> <code>HashMap&lt;Integer, String&gt;();</code>

<code>        </code><code>map.put(</code><code>1</code><code>, </code><code>"a"</code><code>);</code>

<code>        </code><code>map.put(</code><code>2</code><code>, </code><code>"b"</code><code>);</code>

<code>        </code><code>map.put(</code><code>3</code><code>, </code><code>"ab"</code><code>);</code>

<code>        </code><code>map.put(</code><code>4</code><code>, </code><code>"ab"</code><code>);</code>

<code>        </code><code>map.put(</code><code>4</code><code>, </code><code>"ab"</code><code>);</code><code>// 和上面相同 , 會自己篩選</code>

<code>        </code><code>System.out.println(map.size());</code>

<code>        </code><code>// 第一種:</code>

<code>        </code><code>/*</code>

<code>         </code><code>* Set&lt;Integer&gt; set = map.keySet(); //得到所有key的集合</code>

<code>         </code><code>* </code>

<code>         </code><code>* for (Integer in : set) { String str = map.get(in);</code>

<code>         </code><code>* System.out.println(in + "     " + str); }</code>

<code>         </code><code>*/</code>

<code>        </code><code>System.out.println(</code><code>"第一種:通過Map.keySet周遊key和value:"</code><code>);</code>

<code>        </code><code>for</code> <code>(Integer in : map.keySet()) {</code>

<code>            </code><code>//map.keySet()傳回的是所有key的值</code>

<code>            </code><code>String str = map.get(in);</code><code>//得到每個key多對用value的值</code>

<code>            </code><code>System.out.println(in + </code><code>"     "</code> <code>+ str);</code>

<code>        </code><code>}</code>

<code>        </code><code>// 第二種:</code>

<code>        </code><code>System.out.println(</code><code>"第二種:通過Map.entrySet使用iterator周遊key和value:"</code><code>);</code>

<code>        </code><code>Iterator&lt;Map.Entry&lt;Integer, String&gt;&gt; it = map.entrySet().iterator();</code>

<code>        </code><code>while</code> <code>(it.hasNext()) {</code>

<code>             </code><code>Map.Entry&lt;Integer, String&gt; entry = it.next();</code>

<code>               </code><code>System.out.println(</code><code>"key= "</code> <code>+ entry.getKey() + </code><code>" and value= "</code> <code>+ entry.getValue());</code>

<code>        </code><code>// 第三種:推薦,尤其是容量大時</code>

<code>        </code><code>System.out.println(</code><code>"第三種:通過Map.entrySet周遊key和value"</code><code>);</code>

<code>        </code><code>for</code> <code>(Map.Entry&lt;Integer, String&gt; entry : map.entrySet()) {</code>

<code>            </code><code>//Map.entry&lt;Integer,String&gt; 映射項(鍵-值對)  有幾個方法:用上面的名字entry</code>

<code>            </code><code>//entry.getKey() ;entry.getValue(); entry.setValue();</code>

<code>            </code><code>//map.entrySet()  傳回此映射中包含的映射關系的 Set視圖。</code>

<code>            </code><code>System.out.println(</code><code>"key= "</code> <code>+ entry.getKey() + </code><code>" and value= "</code>

<code>                    </code><code>+ entry.getValue());</code>

<code>        </code><code>// 第四種:</code>

<code>        </code><code>System.out.println(</code><code>"第四種:通過Map.values()周遊所有的value,但不能周遊key"</code><code>);</code>

<code>        </code><code>for</code> <code>(String v : map.values()) {</code>

<code>            </code><code>System.out.println(</code><code>"value= "</code> <code>+ v);</code>

<code>    </code><code>}</code>

<code>}</code>

      本文轉自建波李 51CTO部落格,原文連結:http://blog.51cto.com/jianboli/1889768,如需轉載請自行聯系原作者