从头认识java-15.7 Map(7)-TreeMap与LinkedHashMap
这一章节我们来讨论一下Map两个比較经常使用的实现:TreeMap与LinkedHashMap。
1.TreeMap
特性:依照key来排序
package com.ray.ch14; import java.util.Comparator; import java.util.TreeMap; public class Test { public static void main(String[] args) { TreeMap<Integer, String> map = new TreeMap<Integer, String>(); map.put(4, "4"); map.put(2, "2"); map.put(1, "1"); System.out.println(map); System.out.println("----------------"); TreeMap<String, String> map2 = new TreeMap<String, String>( new Comparator<String>() { @Override public int compare(String o1, String o2) { return o1.compareTo(o2); } }); map2.put("b", "3"); map2.put("a", "1"); map2.put("d", "4"); map2.put("c", "2"); System.out.println(map2); } }
输出:
{1=1, 2=2, 4=4}
----------------
{a=1, b=3, c=2, d=4}
因为TreeMap是依照key来排序,因此我们能够通过map来取得firstkey和lastkey等通过排序得到的一些结果。
2.LinkedHashMap
特性:
(1)依照put 的属性存储
(2)能够通过设置构造函数实现LRU算法 ,就是訪问越少的放在越前面
样例:
package com.ray.ch14; import java.util.LinkedHashMap; public class Test { public static void main(String[] args) { LinkedHashMap<String, String> map = new LinkedHashMap<String, String>(); for (int i = 0; i < 6; i++) { map.put(i + "", i + ""); } System.out.println("map:" + map); LinkedHashMap<String, String> map2 = new LinkedHashMap<String, String>( 16, 0.75f, true); map2.putAll(map); System.out.println("map2:" + map2); for (int i = 0; i < 2; i++) { map2.get(i + ""); } System.out.println("map2:" + map2); } }
输出:
map:{0=0, 1=1, 2=2, 3=3, 4=4, 5=5}
map2:{0=0, 1=1, 2=2, 3=3, 4=4, 5=5}
map2:{2=2, 3=3, 4=4, 5=5, 0=0, 1=1}
总结:这一章节主要介绍了Map的两个比較经常使用的实现:TreeMap与LinkedHashMap。
这一章节就到这里,谢谢。
-----------------------------------