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)