Java的HashMap与LinkedHashMap异同



一句话概括的说:两者最大的不同就是,HashMap不保证put进去的数据的顺序;而LinkedHashMap则保证put进去的数据的顺序。换句话也就是说,HashMap添加进去的数据顺序和遍历时的数据顺序不一定;而LinkedHashMap则保证添加时数据顺序是什么,遍历时数据顺序是什么。例如,假如在HashMap中依次、顺序添加元素:1,2,3,4,5,在遍历HashMap时输出的顺序可能是:3,2,1,4,5。但是,假如在LinkedHashMap中依次、顺序添加元素:1,2,3,4,5,在遍历时输出的顺序就是添加操作是的原始顺序:1,2,3,,4,5。代码演示:

import java.util.HashMap;import java.util.LinkedHashMap;/* * 添加10个元素,然后输出,比较HashMap与LinkedHashMap的输出结果异同。 * */public class Map {public static void main(String[] args) {HashMap<String, Integer> map1 = new HashMap<String, Integer>();LinkedHashMap<String, Integer> map2 = new LinkedHashMap<String, Integer>();String key = "key";for (int i = 0; i < 10; i++) {map1.put(key + i, i);map2.put(key + i, i);}System.out.println("HashMap:");for (String k : map1.keySet()) {System.out.println(k + " " + map1.get(k));}System.out.println();System.out.println("LinkedHashMap:");for (String k : map2.keySet()) {System.out.println(k + " " + map2.get(k));}}}

输出结果:

HashMap:key4 4key3 3key6 6key5 5key0 0key2 2key1 1key8 8key7 7key9 9LinkedHashMap:key0 0key1 1key2 2key3 3key4 4key5 5key6 6key7 7key8 8key9 9

理想的路总是为有信心的人预备着

Java的HashMap与LinkedHashMap异同

相关文章:

你感兴趣的文章:

标签云: