文档章节

HashMap,LinkedHashMap,TreeMap性能简单测试

z
 zpl1986
发布于 2017/03/07 15:37
字数 113
阅读 81
收藏 0
  1. LinkedHashMap 性能最佳, 输出的顺序和输入顺序的相同 。
  2. HashMap 性能其次,乱序。
  3. TreeMap 性能最差, 自定义顺序 。

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

public class Main {

    public static void main(String[] args) throws Exception {
        Map<String, Object> map1 = new HashMap<String, Object>();//32425,32257
        Map<String, Object> map2 = new LinkedHashMap<String, Object>();//27454,23971
        Map<String, Object> map = new TreeMap<String, Object>();//38393,38680

        long start = System.currentTimeMillis();
        for (int i = 1; i < 10000000; i++) {
            String uuid = UUID.randomUUID().toString();
            map.put(uuid, uuid + i);
        }
        System.out.println(System.currentTimeMillis() - start);
    }

}

© 著作权归作者所有

z
粉丝 0
博文 1
码字总数 113
作品 0
广州
私信 提问
HashMap,LinkedHashMap,TreeMap的有序性

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

小杰java
2018/03/08
0
0
HashMap源码,问map源码问题?以及LinkedHashMap,TreeMap不同

HashMap 中的 put 方法。put 时先判断是否为空,不为空就计算 hash 值,再使用 indexFor()方法计算数组下标。该方法仅有一条语句:h & (length - 1),这除了取模提高运算效率之外,还会使数据...

五六柒
07/02
0
0
Java容器源码分析-HashMap vs TreeMap vs LinkedHashMap

这里我采用的分析方式是帖子博客加上自己翻看jdk源码。有些情况下写一些测试的算法小例子加深印象。我这里只描述一下自己的总结想法 上一篇文章我们研究了set接口下的几个容器,由于其Set集合...

贾浩v
2017/10/19
0
0
HashMap与LinkedHashMap区别

HashMap和LinkedHashMap的区别(非原创) HashMap,LinkedHashMap,TreeMap都属于Map Map 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复。 HashMap 是一个最...

森火
2018/08/13
0
0
LinkedHashMap和HashMap的比较使用

LinkedHashMap和HashMap的比较使用 由于现在项目中用到了LinkedHashMap,并不是太熟悉就到网上搜了一下。 运行结果如下: LinkedHashMap 6=apple 3=banana 2=pear HashMap* 2=pear 6=apple 3...

smilezhuolin
2018/07/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

日志相关---日志配置和过滤器

一、log4j日志简介 1.1、 Loggers 级别和介绍 Loggers组件在此系统中被分为八个级别:ALL、TRANCE、DEBUG、INFO、WARN、ERROR和FATAL、OFF。这八个级别是有顺序的, ##off表示关闭ALL < T...

spinachgit
1分钟前
1
0
六个面试题层层剖析——LongAddr原子类

并发编程面试题 (1)LongAddr的结构是怎样的? (2)当前线程应该访问Cell数组里面的哪一个Cell元素? (3)如何初始化Cell数组? (4)Cell数组如何扩容? (5)线程访问分配的Cell元素有冲...

须臾之余
3分钟前
0
0
MySQL-入门(二)

本部分主要是MySQL的常用函数和高级用法。 一、MySQL排序 排序关键字:order by 排序字段。后面写上要排序字段,排序字段可以有多个,多个采用逗号间隔,order by默认采用升序(asc)排序,可...

潜行-L
13分钟前
0
0
BAM转VCF的方法对比

1 使用GATK HaplotypeCaller #java -jar gatk.jar HaplotypeCaller --native-pair-hmm-threads 4 -R xx.fa -I xx.bam -O xx.vcf --native-pair-hmm-threads用来设置多线程,默认为4线程 2 sa......

悲催的古灵武士
21分钟前
0
0
软件架构设计原则之“KISS”的总结使用

今天聊一聊软件架构设计中的 KISS 原则。 对! 就是亲嘴的那个 “KISS”! 一定要多练习。 ... ... ... ... 作为一个程序员我是推荐理解为“亲嘴”的,可以很好的解决单身问题,但作为一个架...

Owen_Jia
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部