您的位置:首页 > 其它

HashMap,TreeMap,LinkedHashMap三种map的排序特点

2017-03-31 00:00 507 查看
测试如下,

package com.hjcui.study;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;

/*
* 三种map的排序特点
*/
public class MapTest {
@SuppressWarnings(value = { "unchecked", "rawtypes" })
public static void main(String[] args) {
Map m1 = new HashMap();
m1.put("bbb", "HashMap");
m1.put("aaa", "111");
m1.put("ccc", "hjcui");
m1.put("aaa", "111s");
System.out.println(m1.keySet());
System.out.println(m1.values());

SortedMap sm = new TreeMap();
sm.put("bbb", "TreeMap");
sm.put("aaa", "111");
sm.put("ccc", "hjcui");
sm.put("aaa", "111s");
System.out.println(sm.keySet());
System.out.println(sm.values());

LinkedHashMap lm = new LinkedHashMap();
lm.put("bbb", "LinkedHashMap");
lm.put("aaa", "111");
lm.put("ccc", "hjcui");
lm.put("aaa", "111s");
System.out.println(lm.keySet());
System.out.println(lm.values());
// 举个栗子 按字符出现的顺序输出字符和次数
String str = "hjcuihjcui321aa";
Map<Character, Integer> result = getCharMaps(str);
System.out.println(result);

}

public static Map<Character, Integer> getCharMaps(String s) {
Map<Character, Integer> map = new LinkedHashMap<Character, Integer>();
for (int i = 0; i < s.length(); i++) {
Character c = s.charAt(i);
Integer count = map.get(c);
map.put(c, count == null ? 1 : count + 1);
}
return map;

}

}

通过输出比较相互的差异

[aaa, ccc, bbb]
[111s, hjcui, HashMap]
[aaa, bbb, ccc]
[111s, TreeMap, hjcui]
[bbb, aaa, ccc]
[LinkedHashMap, 111s, hjcui]
{h=2, j=2, c=2, u=2, i=2, 3=1, 2=1, 1=1, a=2}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  map
相关文章推荐