Java–Maps

HashMap

这是Java里最为常用的一种map结构,散列表,是根据hashcode存储<key,value>键值对,并没有顺序。一般刷题是主要允许用了其O(1)的查找速度。
其内部实现结构:实际上是一个链表的数组。
HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致

HashMap默认的初始化大小为16。之后每次扩充,容量变为原来的2倍。

非线程安全

常用method:

operation function
插入 put(E Key, E value)
查找 get(E key)
是否存在某个键 containsKey(E key)
是否存在某个值 containsValue(E value)
集合 entrySet() , keySet()

TreeMap

主要是使用其排序的功能,TreeMap能够把它保存的记录根据键排序,默认是按键值的升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。
其底层数据结构是红黑树,注意,该树总是会通过左旋或者右旋来保持平衡状态,在有序的前提下保证了尽可能低的查找深度

非线程安全

常用method

operation function
查找 ceilingEntry(K key)
返回最大的小于等于key的键值对,同时还有ceilingKey(K key)
对应的有floorEntry(K key) 和 floorKey()
firstEntry()—Returns a key-value mapping associated with the least key in this map, or null if the map is empty.
get(K key)
插入 put(K key, V value)
是否存在某个键 containsKey(E key)
是否存在某个值 containsValue(E value)
集合 entrySet() , keySet()

LinkedHashMap

其实是个HashMap + LinkedList
LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的.也可以在构造时用带参数,按照应用次数排序。在遍历的时候会比HashMap慢,不过有种情况例外,当HashMap容量很大,实际数据较少时,遍历起来可能会比LinkedHashMap慢,因为LinkedHashMap的遍历速度只和实际数据有关,和容量无关,而HashMap的遍历速度和他的容量有关。
(copy from: https://www.cnblogs.com/jiduoduo/p/6006662.html)

非线程安全

常用method

operation function
插入 put(E Key, E value)
查找 get(E key)
是否存在某个键 containsKey(E key)
是否存在某个值 containsValue(E value)
集合 entrySet() , keySet()

Java-- Maps相关推荐

  1. Top 10 Mistakes Java Developers Make(转)

    文章列出了Java开发者最常犯的是个错误. 1.将数组转换为ArrayList 为了将数组转换为ArrayList,开发者经常会这样做: ? 1 List<String> list = A ...

  2. java writestartarray_jackson的基础知识

    jackson是一个用于java与json.xml直接相互转化的api. jackson可以将json字符串反序列化城java对象,也可以将java对象序列化为json字符串, 通过创建objectm ...

  3. 有关于Java Map,应该掌握的8个问题

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:一个线程池 bug 引发的 GC 思考!个人原创+1博客:点击前往,查看更多 前言 最近几天看了几篇有关于Jav ...

  4. java微服务,微在哪_Java:ChronicleMap第3部分,快速微服务

    java微服务,微在哪 标准Java Maps需要在启动时进行初始化. 了解如何利用可从文件初始化的ChronicleMaps并显着减少微服务启动时间,以及如何在JVM之间共享Maps. 内置的Map ...

  5. Java 获取集合元素的值

    遍历从Collection接口延伸出的List.Set和以键值对形式作存储的Map类型的集合,我们分别使用了普通for,增强型的 for ,iterator 等方式来遍历集合 完整代码 import ...

  6. Java 集合List、Set、HashMap操作二(Map遍历、List反向、Set删除指定元素,集合只读、TreeMap操作、List转Array、List移动元素)

    Map遍历 import java.util.Map; import java.util.HashMap; import java.util.HashSet; import java.util.Ite ...

  7. python调用java方法_python调用Java方法传入HashMap ArrayList

    1.Java代码: package com; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap ...

  8. JRuby 1.6.5发布 Ruby语言的Java实现

    JRuby社区近日发布了JRuby的最新版本1.6.5. JRuby是Ruby编程语言的100%纯Java实现,它结合了Ruby简洁的语法以及Java丰富的类库. JRuby社区称,1.6.x系列主要 ...

  9. java 集合遍有几种方法_Java 集合遍历的几种方法

    以下实例演示了如何遍历从Collection接口延伸出的List.Set和以键值对形式作存储的Map类型的集合,以下我们分别使用了普通for,增强型的 for ,iterator 等方式来遍历集合: ...

  10. Java集合遍历总结

    List与Set类型集合的遍历 import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; imp ...

最新文章

  1. IntelliJ IDEA 2020.2.4款 神级超级牛逼插件推荐
  2. 线阵相机和面阵相机的区别及应用
  3. 存储虚拟化大幅减少了宕机时间
  4. C#导出Excel和相关打印设置
  5. windows编程(八)
  6. BAT 批处理脚本教程
  7. 2021-08-05学习日记
  8. 使用ASP.NET Core 3.x 构建 RESTful API - 3.1 API资源命名
  9. java 取Blob转为String
  10. Qt工作笔记-QMap的进一步操作
  11. 程序员编程艺术第二十七章:不改变正负数相对顺序重新排列数组(无解?)
  12. mysql查询报错2014_mysql Hibernate 查询时用别名报错
  13. 《Python入门到精通》文件操作
  14. 高响应比优先调度算法和短作业优先调度算法
  15. google chrome 同步书签 查看gmail邮箱 谷歌浏览器同步助手
  16. iis 值不在预期的范围错误解决办法
  17. Matlab_插值与抽取
  18. matlab测量平差实验报告,测量平差实习心得精选三篇
  19. HTML5游戏出现新转机
  20. mysql的一些介绍

热门文章

  1. 详解JSP 中Spring工作原理及其作用
  2. java多态练习_Java多态练习
  3. 各厂家linux面板对比
  4. 什么是VPS云服务器?
  5. 云服务器和VPS服务器的区别
  6. 虚拟机上网与linux kali2018和windows虚拟机ip地址修改的方法(保姆级图文)
  7. C语言初阶:define定义的常量和宏,关于指针的详细讲解,初步认识结构体的使用
  8. 2.10黑盒测试-常见输入输出方式
  9. 【BIT2021程设】7. 一夜发白《千字文》——Unicode和UTF-8、位运算
  10. 极限元语音算法专家刘斌:基于深度学习的语音生成问题