java中的HashMap和TreeMap

HashMap和TreeMap两者都是Map,java中的Map以键值对来存储数据,通过键--key来索引值--value。

HashMap通过hashcode对其内容进行快速查找,其结果时无序的;TreeMap中的所有元素都默认进行了排序,所以当需要一个有序的结果时,使用TreeMap是比较方便的。

具体的定义和遍历方法,可以看下面的例子:

package com.yeetrack.java.test;
              
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
              
/**
 * Created with IntelliJ IDEA.
 * User: youthflies
 * Date: 13-2-22
 * Time: 下午4:51
 * To change this template use File | Settings | File Templates.
 */
public class TestMap
{
    public static void main(String[] args)
    {
        HashMap hashmap = new HashMap<String, String>();
        hashmap.put("username", "youthflies");
        hashmap.put("age", "14");
        hashmap.put("password", "youthflies");
        //entrySet返回hashmap中包含的映射关系的 Set 视图。也是一个Set,而Set中每个元素是内部类Map.Entry。
        Iterator iterator = hashmap.entrySet().iterator();
        while(iterator.hasNext())
        {
            //获取Set视图中的每一项
            Map.Entry entry = (Map.Entry)iterator.next();
            System.out.println(entry.getKey()+"--->"+entry.getValue());
        }
        //keyset是获取hashmap中的key的视图,只包含key,没有value
        Iterator iter = hashmap.keySet().iterator();
        while (iter.hasNext())
        {
            Object object = iter.next();
            //hashmap.get()再通过key来获取value
            System.out.println(object+"--->"+hashmap.get(object));
        }
              
        //treemap会对key自动进行自然排序
        TreeMap treeMap = new TreeMap();
        treeMap.put("username", "youthflies");
        treeMap.put("age", 14);
        treeMap.put("password", "youthflies");
              
        Iterator iterator2 = treeMap.entrySet().iterator();
        while(iterator2.hasNext())
        {
            Map.Entry entry = (Map.Entry)iterator2.next();
            System.out.println(entry.getKey()+"--->"+entry.getValue());
        }
              
    }
}

上面的输出结果为:

username--->youthflies
age--->14
password--->youthflies
username--->youthflies
age--->14
password--->youthflies
//下面是treemap输出
age--->14
password--->youthflies
username--->youthflies

 

易踪网(yeetrack.com)

版权声明

本站文章、图片、视频等(除转载外),均采用知识共享署名 4.0 国际许可协议(CC BY-NC-SA 4.0),转载请注明出处、非商业性使用、并且以相同协议共享。

© 空空博客,本文链接:https://www.yeetrack.com/?p=29