美文网首页
常用Java集合类总结

常用Java集合类总结

作者: 网易数帆 | 来源:发表于2018-12-20 17:20 被阅读3次

此文已由作者赵计刚授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验。

7.1、List(允许重复元素)

  • ArrayList:

    • 底层数据结构:Object[]

    • 查询(get)、遍历(iterator)、修改(set)使用的比较多的情况下,用ArrayList

    • 可扩容,容量无限

  • LinkedList

    • 底层数据结构:环形双向链表

    • 增加(add)、删除(remove)使用比较多的情况下,用LinkedList

    • 链表,容量无限

说明:

1)add(E e):在数组末尾插入元素,ArrayList需要考虑扩容问题,一旦扩容就要进行数组复制,LinkedList不需要;

2)add(int index):在数组中间插入元素,ArrayList需要考虑将该index及其后的数组元素全部复制后移一位,LinkedList不需要

7.2、Set(不允许重复元素,所以可用于去重操作)

  • HashSet:

    • 底层数据结构:HashMap

    • 可看做容量无限

  • TreeSet:

    • 底层数据结构:TreeMap

    • 容量无限

7.3、Map(key-value)

  • HashMap:

    • 底层数据结构:链表数组

    • 可扩容,且最大容量极大,可看做容量无限

  • TreeMap:

    • 底层数据结构:红黑树

    • 可以实现按key排序(在使用中,要么使用TreeMap(Comparator),要么让key对象实现Comparable)

    • 红黑树,容量无限

注意:

  • 以上全部线程不安全

  • 对于查找和删除较为频繁,且元素数量较多(元素数量>100)的情况下,Set和Map性能要比List好一些(单线程情况下)

上边第二个结论是在《分布式Java基础:应用与实践》一书中,林昊通过一系列的测试结果得出的。

免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐

更多网易技术、产品、运营经验分享请点击

相关文章:
【推荐】 【译文】东京的外国工程师
【推荐】 理解DDoS防护本质:基于资源较量和规则过滤的智能化系统
【推荐】 企业项目开发--本地缓存guava cache(1)

相关文章

  • Java常用集合类总结

    List接口与其实现类 List类似于数组,可以通过索引来访问元素,实现该接口的常用类有ArrayList、Lin...

  • Java常用集合类总结

    参考:http://www.jianshu.com/p/9d90a95ce26f 默认集合都是非线程安全的,但是系...

  • 常用Java集合类总结

    此文已由作者赵计刚授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 7.1、List(允许...

  • 常用Java集合类总结

    此文已由作者赵计刚授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 7.1、List(允许...

  • Java基础之集合类

    Java基础之集合类 集合类简单介绍 Java集合是Java提供的工具包,包含了常用的数据结构:集合、链表、队列、...

  • Java基础(二)

    Java要点2 JAVA 集合类 1.JAVA常用集合类功能、区别和性能 两大类:Collections,Map;...

  • Java并发包之ConcurrentHashMap

    之前整理了一份Java中常用的集合类的基本特性:Java常用集合类图解详细介绍了HashMap:HashMap之浅...

  • Java集合框架—ArrayList—扩容原理底层源码

    Java.util.ArrayList是Java集合中最常用的类,也是Java开发中最常用的类之一。本篇基于JDK...

  • 集合概述

    一:集合的UML类图 二:集合工具的分析 (Java集合是java提供的工具) 常用的数据结构: 集合、链表、队列...

  • Java集合总结

    Java集合总结 概述 Java集合类主要由两个接口派生而出: Collection Map 这两个是Java集合...

网友评论

      本文标题:常用Java集合类总结

      本文链接:https://www.haomeiwen.com/subject/pdqukqtx.html