java treemap 内存_Java中Map、HashMap、LinkedHashMap、TreeMap的区别
Map:
Map是一个接口不能实例化,Map接口主要有两个实现类:HashMap和TreeMap类。其中,HashMap类按哈希算法来存取对象,而TreeMap类可以对键对象进行排序;
Map提供了一种映射关系,其中的元素是已键值对(key-value)的形式存储,能够实现根据key快速查找value;
Map中的键值对以Entry类型的对象实例形式存在;
键(key值)不可以重复,value值可以;
HashMap:
HashMap是Map的一个重要的实现类,基于哈希表实现;
HashMap中的Entry对象是无序排列的;
Key和Value值都可以为null,但是一个HashMap只能有一个Key值为null的映射(Key不可以重复);
LinkedHashMap:
LinkedHashMap内部有一个链表,保持Key插入的顺序。迭代的时候也时候按照插入的顺序迭代,而且迭代的时候比HashMap快;
LinkedHashMap拥有HashMap的所有特性,比HashMap多维护一个双向链表,因此可以按照插入的顺序从头部或者尾部迭代(是有序的),但是对内存的开销也要比HashMap大、性能也要差一些;
TreeMap:
TreeMap的底层是通过红黑数实现的;没有调优选项,所以该树处于平衡状态;它的 containsKey , get , put and remove 方法的时间复杂度是 log(n) ,并且它是按照 key 的自然顺序(或者指定排序)排列,与 LinkedHashMap 不同, LinkedHashMap 保证了元素是按照插入的顺序排列。
java treemap 内存_Java中Map、HashMap、LinkedHashMap、TreeMap的区别相关推荐
- java 减少内存_java中减少内存占用小技巧
Java做的系统给人的印象是什么?占内存!说道这句话就会有N多人站出来为java辩护,并举出一堆的性能测试报告来证明这一点. 其实从理论上来讲java做的系统并不比其他语言开发出来的系统更占用内存,那 ...
- java 数组 内存_Java 中数组的内存分配
Java 中数组的内存分配 1.Java 程序在运行时,需要在内存中分配空间.为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据和内存管理方式. 2.数组基本概念 数组是 ...
- java遍历字典_Java中的HashMap遍历和C#的字典遍历
Dictionary list = new Dictionary(); list.Add("d", 1); //3.0以上版本 foreach (var item in list) ...
- Java中的Map集合及其子类HashMap,LinkedHashMap,TreeMap,ConcurrentHashMap
一 .Map public interface Map<K,V> 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.此接口哦取代了Dictionary类,后者完全是 ...
- java中HashMap,LinkedHashMap,TreeMap,HashTable的区别
java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap Map主要用于存储健值对,根 ...
- Java基础之Java8中Map的compute的使用
Java基础之Java8中Map的compute的使用 一.介绍 Java8更新后,Map接口中提供了compute方法.下面我们先看看官方文档的对它的使用说明. 如果看完上面的还是不太明白的话,看下 ...
- Java基础之Java8中map和flatMap的使用
Java基础之Java8中map和flatMap的使用 一.介绍 首先,看下map和flatMap的官方文档说明 map flatMap 其实单纯的看api说明还是比较抽象,下面我将以几个实战例子来帮 ...
- map java 用法_java中map 9种常规用法
通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的.下面就以K和V来代表键和值,来说明一下java中关于Map的九大问题. 0.将Map转换为List类型 在java中Map接口提 ...
- JavaSE学习总结(十四)Map集合/Map和Collection的区别/HashMap/LinkedHashMap/TreeMap/集合间的嵌套/Hashtable/Collections工具类
一.Map集合 我们知道,一个学号就能对应一个学生,并且每个学生的学号都不同,学号就像一个键,对应的学生就是该键对应的值.日常生活中经常能见到这种类似学号对应学生的例子.Java 为了我们更加方便地去 ...
最新文章
- Amber16和AmberTools16在CentOS 7下GPU加速版的安装
- VMWARE ESXI 虚拟硬盘的格式:精简置备、厚置备延迟置零、厚置备置零
- c. Litmxs找女友
- OWC做电子表格和图表的试验
- document.write()
- 【新年假期宅家系列】动漫游戏集中营
- 聚簇索引和非聚簇索引的区别_学习索引的一些总结
- C语言-Ubuntu下GDB与GCC的安装与使用
- Chrome下的语音控制框架MyVoix.js使用篇(二)
- c++并发编程之thread::join()和thread::detach()(转)
- 关于data.table中i, j, by都为数字的理解
- SpringBoot(一)启动相关
- 幼儿抽象逻辑思维举例_语言训练幼儿逻辑思维——抽象篇
- 愿你和我一样喜欢蛋炒饭
- 企业微信企业邮箱设置,微信企业邮箱如何设置?
- 山东理工大学ACM平台题答案关于C语言 1177 C语言实验——时间间隔
- linux删除序号2的文件,Linux使用rm-rf删除了重要文件?不要慌,我们有恢复神器!-rm文件...
- 由access key泄露浅谈云安全
- Codevs 1066 引水入城 2010年NOIP全国联赛提高组
- 阿里云 centos7静默安装oracle12c,使用navicat 连接oracle数据库
热门文章
- arcgis Manager 登陆时提示Incorrect login Information
- 行千里,看山城轻轨穿楼越林;致广大,望重庆交通桥上桥下
- 小白2分钟学会Visual Studio将引用包打包到NuGet上
- Spring AOP注解方式实现日志管理
- Spark3.1.1 Docker镜像中修改/etc/hosts
- kylin分析引擎:运行原理、维度和Cube等名词解释、核心算法
- 请说明一下http和https的区别
- JMM主内存和工作内存运行流程图
- 【客户下单】前端系统Action数据封装
- 为什么下拉框拉不下来_太气人了!《除暴》吴彦祖的浴巾为什么就是掉不下来?...