java中的HashMap和TreeMap

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

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

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

1package com.yeetrack.java.test; 2 3import java.util.HashMap; 4import java.util.Iterator; 5import java.util.Map; 6import java.util.TreeMap; 7 8/** 9 * Created with IntelliJ IDEA. 10 * User: youthflies 11 * Date: 13-2-22 12 * Time: 下午4:51 13 * To change this template use File | Settings | File Templates. 14 */ 15public class TestMap 16{ 17 public static void main(String[] args) 18 { 19 HashMap hashmap = new HashMap<String, String>(); 20 hashmap.put("username", "youthflies"); 21 hashmap.put("age", "14"); 22 hashmap.put("password", "youthflies"); 23 //entrySet返回hashmap中包含的映射关系的 Set 视图。也是一个Set,而Set中每个元素是内部类Map.Entry。 24 Iterator iterator = hashmap.entrySet().iterator(); 25 while(iterator.hasNext()) 26 { 27 //获取Set视图中的每一项 28 Map.Entry entry = (Map.Entry)iterator.next(); 29 System.out.println(entry.getKey()+"--->"+entry.getValue()); 30 } 31 //keyset是获取hashmap中的key的视图,只包含key,没有value 32 Iterator iter = hashmap.keySet().iterator(); 33 while (iter.hasNext()) 34 { 35 Object object = iter.next(); 36 //hashmap.get()再通过key来获取value 37 System.out.println(object+"--->"+hashmap.get(object)); 38 } 39 40 //treemap会对key自动进行自然排序 41 TreeMap treeMap = new TreeMap(); 42 treeMap.put("username", "youthflies"); 43 treeMap.put("age", 14); 44 treeMap.put("password", "youthflies"); 45 46 Iterator iterator2 = treeMap.entrySet().iterator(); 47 while(iterator2.hasNext()) 48 { 49 Map.Entry entry = (Map.Entry)iterator2.next(); 50 System.out.println(entry.getKey()+"--->"+entry.getValue()); 51 } 52 53 } 54}

上面的输出结果为:

1username--->youthflies 2age--->14 3password--->youthflies 4username--->youthflies 5age--->14 6password--->youthflies 7//下面是treemap输出 8age--->14 9password--->youthflies 10username--->youthflies

易踪网(yeetrack.com)

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

HashMap的理解

HashMap在Map.Entry静态内部类实现中存储keyvalue对。HashMap使用哈希算法,在put和get方法中,它使用hashCode()和equals()方法。当我们通过传递keyvalue对调用put方法的时候,HashMap使用KeyhashCode()和哈希算法来找出存储keyvalue对的索引。Entry存储在LinkedL

Java日期时间API系列31

  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前

java中map接口hashMap以及Enty之间的用法和关系

java中map接口hashMap以及Enty之间的转换首先说的是map接口:Map提供了一种映射关系,其中的元素是以键值对(keyvalue)的形式存储的,能够实现根据key快速查找value;建(key值)不可重复,value值可以重复,一个value值可以和很多key值形成对应关系,每个建最多只能映射到一个值。Ma

Java8的HashMap笔记摘要

问题例子: HashMap是不是有序的?不是有序的。有没有有序的Map实现类呢?有TreeMap和LinkedHashMap。TreeMap和LinkedHashMap是如何保证它的顺序的? TreeMap是通过实现SortMap接口,能够把它保存的键值对根据key排序,基

HashMap中神奇的h & (length

众所周知,HashMap是基于Hash表的Map接口实现,HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap中主要是通过key的hashCode来计算hash值的,只要hashCode相同,计算出来的hash值就一样。但是知道了Hash值之后,又是怎么确定出key在数组中的索引呢?根据源码得知如下方法static

java中的HashMap和TreeMap - HelloWorld