java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要介绍了 Java 集合之 HashMap 用法, 结合实例形式分析了 java map 集合中 HashMap 定义、遍历等相关操作技巧, 需要的朋友可以参考下
本文实例讲述了 Java 集合之 HashMap 用法。分享给大家供大家参考,具体如下:
HashMap 是最常用的 Map 集合,它的键值对在存储时要根据键的哈希码来确定值放在哪里。
HashMap 中作为键的对象必须重写 Object 的 hashCode() 方法和 equals() 方法
- import java.util.Map;
- import java.util.HashMap;
- public class lzwCode {
- public static void main(String[] args) {
- Map < Integer,
- String > map = new HashMap < Integer,
- String > ();
- map.put(1, "Barcelona");
- map.put(2, "RealMadrid");
- map.put(3, "ManchesterUnited");
- map.put(4, "AC milan");
- map.put(5, null);
- map.put(null, null);
- //map.put(null, "Chelsea"); //可以运行键值都为空(如果键相同,后者覆盖前者)
- System.out.println(map);
- System.out.print(map.keySet() + " "); //集合中所有键以Set集合形式返回
- System.out.println();
- System.out.print(map.values() + " "); //集合中所有键以Collection集合形式返回
- System.out.println();
- System.out.println("集合大小:" + map.size());
- System.out.println("是否包含该键:" + map.containsKey(2)); //返回boolean
- System.out.println("是否包含该值:" + map.containsValue("Barcelona")); //返回boolean
- System.out.println(map.isEmpty()); //不包含键-值映射关系,则返回true
- map.remove(5); //删除映射关系
- System.out.println(map);
- map.clear(); //清空集合
- System.out.println(map);
- }
- }
控制台结果:
HashMap 的两种遍历方法
- import java.util.Map;
- import java.util.HashMap;
- import java.util.Iterator;
- public class lzwCode {
- public static void main(String[] args) {
- Map < String,
- Integer > map = new HashMap < String,
- Integer > ();
- map.put("Barcelona", 1);
- map.put("RealMadrid", 2);
- map.put("ManchesterUnited", 3);
- map.put("AC milan", 4);
- map.put("Chelsea", 5);
- //第一种:(效率高)
- System.out.println("第一种方法:");
- Iterator iter = map.entrySet().iterator();
- while (iter.hasNext()) {
- Map.Entry entry = (Map.Entry) iter.next();
- Object key = entry.getKey();
- Object val = entry.getValue();
- System.out.println("键:" + key + "<==>" + "值:" + val);
- }
- //第二种:(效率低)
- System.out.println("第二种方法:");
- Iterator it = map.keySet().iterator();
- while (it.hasNext()) {
- Object key = it.next();
- Object val = map.get(key);
- System.out.println("键:" + key + "<==>" + "值:" + val);
- }
- //对于keySet只是遍历了2次,一次是转为iterator,一次就从HashMap中取出key所对于的value。
- //对于entrySet只是遍历了第一次,它把key和value都放到了entry中,所以快比keySet快些。
- System.out.println("For-Each循环输出");
- //For-Each循环
- for (Map.Entry < String, Integer > entry: map.entrySet()) {
- String key = entry.getKey().toString();
- String val = entry.getValue().toString();
- System.out.println("键:" + key + "<==>" + "值:" + val);
- }
- }
- }
控制台结果:
希望本文所述对大家 java 程序设计有所帮助。
来源: http://www.phperz.com/article/18/0105/357048.html