码迷,mamicode.com
首页 > 其他好文 > 详细

集合框架比较

时间:2018-03-20 19:43:07      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:记录   节点   效率   col   log   数组   compare   允许   png   

集合框架可以分为Collection和Map

Collection

  • Set:元素不重复(底层是Map)
    • HashSet
      • 集合中元素可以为null,但只有一个元素为null
      • 基于HashMap实现的,底层是Hash表,不能保证元素排列顺序
      • 元素对象比较是否重复:先调用hashcode方法,再调用equals方法  
    • TreeSet 
      • 基于TreeMap实现的,底层是红黑树,不允许元素是null
      • 支持排序:自然排序——元素实现Comparable接口调用compareTo方法比较大小,定制排序——自定义比较器类实现Comparator接口调用compare方法比较元素大小 
  • List:元素有顺序(索引顺序)
    • ArrayList
      • 底层是数组,查询快(索引),增删慢
      • 线程不安全,效率较Vector高
    • Vector
      • 底层是数组,查询快(索引),增删慢
      • 线程安全(同步影响性能),效率较ArrayList低  
    • LinkedList
      • 底层是一组连接的记录,是链表,查询慢(需要遍历),增删快(修改前后节点即可)
      • 线程不安全

Map(类比set)

  • HashMap
    • key和value可以为null,不安全 
  • TreeMap
  • Hashtable
    • key和value不能为null,安全 
  • Properties  

---------------------------------------------------------------------------------------------------------------------

线程不同步的集合如何转换成线程同步的集合:

  • 方法一:Collections中的静态方法

技术分享图片

  • 方法二:java.util.concurrent包下提供的同步集合容器

技术分享图片

 

集合框架比较

标签:记录   节点   效率   col   log   数组   compare   允许   png   

原文地址:https://www.cnblogs.com/qf123/p/8611445.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!