zoukankan      html  css  js  c++  java
  • 常用Java API:HashMap 和 TreeMap

    摘要

    本文主要介绍Map接口下的HashMap和TreeMap。

    HashMap

    HashMap是基于哈希表的 Map 接口的实现,是无序的

    1. clear()//清空。
    2. containsKey(Object key)//如果包含指定键,返回true
    3. containsValue(Object value)//如果包含指定值, 返回true
    4. get(Object key)//返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
    5. isEmpty()//如果此映射不包含键-值映射关系,则返回 true
    6. put(K key, V value)//在此映射中关联指定值与指定键。
    7. remove(Object key)//从此映射中移除指定键的映射关系(如果存在)。
    8. size()返回此映射中的键-值映射关系数。

    实例

    HashMap<Integer, Integer> m = new HashMap<>();//定义格式
    m.put(100,1);
    System.out.print(m.get(100)); // 1
    

    TreeMap

    TreeMap是基于红黑树实现的,是有序的, 可进行排序。
    此实现为 containsKey、get、put 和 remove 操作提供受保证的 log(n) 时间开销

    1. clear()//清空
    2. containsKey(Object key)//如果包含指定键,返回true
    3. containsValue(Object value)//如果包含指定值, 返回true
    4. get(Object key)//返回指定键的值, 如果不存在返回null
    5. firstKey()//返回此映射中当前第一个(最低)键。
    6. lastKey()返回映射中当前最后一个(最高)键
    7. ceilingKey(K key)返回大于等于给定键的最小键;如果不存在这样的键,则返回 null。
    8. floorKey(K key)返回小于等于给定键的最大键;如果不存在这样的键,则返回 null。

    HashMap和TreeMap的遍历方式

    HashMap和TreeMap可以根据迭代器遍历,但,它俩不能直接遍历,可以遍历 键的集合, 值的集合, 键值对的集合。

    1.通过keySet()获得键,然后根据键遍历值

    使用while + Iterator

    TreeMap<Integer, String> m = new TreeMap<>();
    m.put(1,"A");
    m.put(2,"B");
    Set<Integer> s = m.keySet();
    Iterator it = s.iterator();
    Integer key = null; // 这里必须必须声明为类。
    while(it.hasNext()){
    	key = (Integer)it.next();
    	String value = m.get(key);	
    	System.out.print(value);
    }
    

    使用增强for

    TreeMap<Integer, String> m = new TreeMap<>();
    m.put(1,"A");
    m.put(2,"B");
    for(int k : m.keySet()){
    	System.out.print(m.get(k));
    }
    

    2.直接通过values()遍历值

    使用while 和 Iterator

    TreeMap<Integer, String> m = new TreeMap<>();
    m.put(1,"A");
    m.put(2,"B");
    Collection<String> s = m.values();
    Iterator it = s.iterator();
    String value = null; // 这里必须必须声明为类。
    while(it.hasNext()){
    	value = (String)it.next();
    	System.out.print(value);
    }
    

    使用增强for

    TreeMap<Integer, String> m = new TreeMap<>();
    m.put(1,"A");
    m.put(2,"B");
    for(String value : m.values()){
    	System.out.print(value);
    }
    

    增强for还是十分方便滴

  • 相关阅读:
    C# 枚举转列表
    Idea 快捷键大全【转】
    Bootstrap列表与代码样式(附源码)--Bootstrap
    JQuery实现点击按钮切换图片(附源码)--JQuery基础
    Bootstrap文本排版基础--Bootsrap
    使用定时器限制点击按钮发送短信(附源码)--JavaScript小案例
    分类导航菜单的制作(附源码)--HTML
    MyEclipse开发平台下如何将新建的JSP页面的默认编码格式设置为UTF-8--JSP
    网页加载进度的实现--JavaScript基础
    动态地添加HTML控件-JavaScript基础
  • 原文地址:https://www.cnblogs.com/wangzheming35/p/12335783.html
Copyright © 2011-2022 走看看