HashMap,LinkedHashMap,TreeMap应用简介:

共同点:
HashMap,LinkedHashMap,TreeMap都属于Map;Map 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复。

不同点:
1.HashMap里面存入的键值对在取出的时候是随机的,也是我们最常用的一个Map.它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。
在Map 中插入、删除和定位元素,HashMap 是最好的选择。

2。TreeMap取出来的是排序后的键值对。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。

3. LinkedHashMap 是HashMap的一个子类,如果需要输出的顺序和输入的相同,那么用LinkedHashMap可以实现.

代码实例:

package com.lrm.study.testcase;

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

public class MapAppTest {
/**
* @Create on Nov 9, 2009 by lrm
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MapAppTest.noOrder();
MapAppTest.hasOrder();
MapAppTest.likedHashMap();
}

public static void noOrder() {
System.out.println("------无序(随机输出------");
Map map = new HashMap();
map.put("1", "Level 1");
map.put("2", "Level 2");
map.put("3", "Level 3");
map.put("4", "Level 4");
map.put("F", "Level F");
map.put("Q", "Level Q");
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry e = (Map.Entry) it.next();
System.out.println("Key: " + e.getKey() + "; Value: "
+ e.getValue());
}
}

// 有序(默认排序,不能指定)
public static void hasOrder() {
System.out.println("------有序(但是按默认顺充,不能指定)------");
Map map = new TreeMap();
map.put("F", "Level F");
map.put("7", "Level 1");
map.put("8", "Level 2");
map.put("4", "Level 3");
map.put("4", "Level 4");
map.put("Q", "Level Q");
map.put("E", "Level E");
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry e = (Map.Entry) it.next();
System.out.println("Key: " + e.getKey() + "; Value: "
+ e.getValue());
}
}

public static void likedHashMap() {
System.out.println("------有序(根据输入的顺序输出)------");
Map map = new LinkedHashMap();
map.put("F", "Level F");
map.put("7", "Level 1");
map.put("8", "Level 2");
map.put("4", "Level 3");
map.put("4", "Level 4");
map.put("Q", "Level Q");
map.put("E", "Level E");
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry e = (Map.Entry) it.next();
System.out.println("Key: " + e.getKey() + "; Value: "
+ e.getValue());
}
}

}

输入结果:

------无序(随机输出------
Key: 3; Value: Level 3
Key: F; Value: Level F
Key: 2; Value: Level 2
Key: 4; Value: Level 4
Key: Q; Value: Level Q
Key: 1; Value: Level 1
------有序(但是按默认顺充,不能指定)------
Key: 4; Value: Level 4
Key: 7; Value: Level 1
Key: 8; Value: Level 2
Key: E; Value: Level E
Key: F; Value: Level F
Key: Q; Value: Level Q
------有序(根据输入的顺序输出)------
Key: F; Value: Level F
Key: 7; Value: Level 1
Key: 8; Value: Level 2
Key: 4; Value: Level 4
Key: Q; Value: Level Q
Key: E; Value: Level E

HashMap,LinkedHashMap,TreeMap应用相关推荐

  1. java中HashMap,LinkedHashMap,TreeMap,HashTable的区别

    java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap Map主要用于存储健值对,根 ...

  2. Java中的Map集合及其子类HashMap,LinkedHashMap,TreeMap,ConcurrentHashMap

    一 .Map public interface Map<K,V> 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.此接口哦取代了Dictionary类,后者完全是 ...

  3. HashMap,LinkedHashMap,TreeMap的有序性

    HashMap 是将 Key 做 Hash 算法,然后将 Hash 值映射到内存地址,直接取得 Key 所对应的数据.在 HashMap 中,底层数据结构使用的是数组,所谓的内存地址即数组的下标索引. ...

  4. JavaSE学习总结(十四)Map集合/Map和Collection的区别/HashMap/LinkedHashMap/TreeMap/集合间的嵌套/Hashtable/Collections工具类

    一.Map集合 我们知道,一个学号就能对应一个学生,并且每个学生的学号都不同,学号就像一个键,对应的学生就是该键对应的值.日常生活中经常能见到这种类似学号对应学生的例子.Java 为了我们更加方便地去 ...

  5. HashMap、TreeMap、Hashable和LinkedHashMap

    Map是最重要的数据结构之一.开始会告诉怎么用HashMap.TreeMap.Hashtable和LinkedHashMap 1.Map概述 在Java SE中有4种Map的实现:HashMap.Tr ...

  6. Hashtable TreeMap HashMap LinkedHashMap的区别

    Hashtable TreeMap HashMap LinkedHashMap的区别 Hashtable TreeMap HashMap LinkedHashMap详解 Hashtable 1.内部存 ...

  7. HashMap, LinkedHashMap 和 TreeMap的区别

    HashMap, LinkedHashMap 和 TreeMap的区别 Java里面的HashMap, LinkedHashMap 和 TreeMap 有什么区别?我看不出以下3个key和value有 ...

  8. LinkedHashMap,HashMap,TreeMap

    package com.test;import java.util.*;/*** @author ***** @create 2017-07-10 20:28*/ public class Linke ...

  9. HashMap、TreeMap、Hashtable、LinkedHashMap区别

    查看原文: http://www.ibloger.net/article/153.html HashMap 允许设置key和value为null,key存放是乱序的,不支持线程的同步,即任一时刻可以有 ...

  10. HashMap vs. TreeMap vs. Hashtable vs. LinkedHashMap(转载)

    本文由  ImportNew -  唐小娟 翻译自  Programcreek.欢迎加入 翻译小组.转载请见文末要求. Map是最重要的数据结构.这篇文章中,我会带你们看看HashMap, TreeM ...

最新文章

  1. java TreeMap 源代码分析 平衡二叉树
  2. C#开发微信门户及应用(10)--在管理系统中同步微信用户分组信息
  3. cmd常用命令与演示
  4. 搭建Docker环境---私有仓库registry搭建
  5. 0301 - 一个比价的小项目
  6. java 配置参数_给你的JAVA程序配置参数(Properties的使用)
  7. XSS(跨站脚本攻击)攻击与防御
  8. Python数据预处理数据的方法总结(使用sklearn-preprocessing)
  9. 一年3000家企业涌入,站上风口的男色经济难逃烧钱亏损
  10. php遍历文件制作删除,使用PHP遍历文件目录与清除目录中文件的实现详解
  11. 基于SpringBoot的在线音乐播放系统
  12. HTTPS性能优化实践
  13. SLAM笔记------------------(1)
  14. CMake实践(2)
  15. Android自适应国际化语言
  16. 微型计算机的硬件原理图,电脑硬件基础图解
  17. cad相对坐标快捷键_47个快捷键+50个CAD技巧助你玩转CAD
  18. python 循环高级用法 [expression for x in X [if condition] for y in Y [if condition] ... for n in N [if con
  19. 高效率的网站打开速度优化方法
  20. HTML5、css3、js实现3D相册

热门文章

  1. python+jpype+linux出现内存溢出问题解决方案
  2. 读书笔记202208 TRC2010 Multi-agent model predictive control of signaling split in urban traffic networks
  3. chmod755的含义
  4. 中国移动(ECIA)云网工程师技术知识-立哥技术
  5. Radius认证协议(六)报文属性
  6. MATLAB三维绘图命令plot3入门
  7. 1481c语言合法标识符,c语言试题答案集
  8. MDM数据质量应用说明
  9. 读《Android开发艺术探索》后的面试题整理
  10. mcafee升级包下载地址