欢迎光临,了解微信小程序开发,就上易用通!

【后端】java基础(4.4)java中级基础之集合——Map

发布:2018-01-24 16:01浏览: 来源:网络 作者:tianshu

Map虽然也叫集合,但是它却不是Collection的子接口。它的底层结构是链表散列,也就是一个数组结构然后每个数组结构里包含的一个链表。我们平常直接叫它“键值(key——value)”结构。
map的实现接口有有不少,比如:
  • HashMap
  • Hashtable
  • TreeMap
  • LinkedHashMap
我们主要来说说最常用的HashMap:
  • 添加元素:put(key,value)
  1. HashMap map = new HashMap<>();
  2. map.put("name", "大妖怪");
  3. map.put("age", "100");
复制代码


  • 查询元素:get(key)
  1. HashMap map = new HashMap<>();
  2. map.put("name", "大妖怪");
  3. map.put("age", "100");
  4. System.out.println(map.get("name"));
  5. System.out.println(map.get("age"));
复制代码


  • 删除元素: remove(key)
  1. HashMap map = new HashMap<>();
  2. map.put("name", "大妖怪");
  3. map.put("age", "100");
  4. System.out.println(map.get("name"));
  5. System.out.println(map.get("age"));
  6. map.remove("age");
  7. System.out.println(map.get("name"));
  8. System.out.println(map.get("age"));
复制代码


  • 修改元素: put(已存在的key,新的value)
  1. HashMap map = new HashMap<>();
  2. map.put("name", "大妖怪");
  3. map.put("age", "100");
  4. System.out.println(map.get("name"));
  5. System.out.println(map.get("age"));
  6. map.put("age","101");
  7. System.out.println(map.get("name"));
  8. System.out.println(map.get("age"));
复制代码


由上述简单的增删改查,我们可以发现,key相当于放入map内容的索引,value就是真正内容。我们查询和删除其实就是对相应的key进行的操作,而put的作用是当操作的是新的key,则新增一条数据,因为HashMap是不可重复的,所以当操作的key已存在,就会覆盖该key下对应的value。
  • 遍历
    • for each循:
    1. HashMap map = new HashMap();
    2. map.put("1", "大妖怪");
    3. map.put("2", "二妖怪");
    4. map.put("3", "三妖怪");
    5. map.put("4", "四妖怪");
    6. map.put("5", "五妖怪");
    7. for (Object obj : map.values()) {
    8. System.out.println(obj);
    9. }
    复制代码
    1. HashMap map = new HashMap();
    2. map.put("1", "大妖怪");
    3. map.put("2", "二妖怪");
    4. map.put("3", "三妖怪");
    5. map.put("4", "四妖怪");
    6. map.put("5", "五妖怪");
    7. for (Object obj : map.keySet()) {
    8. System.out.println(map.get(obj));
    9. }
    复制代码


     
上述例子中,values()方法拿到的是一个value组成的Collection,而ketSet()方法拿到的是一个key组成的Set,因此我们可以将这两个拿过来遍历。




免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。