首页 > 编程语言 >JAVA---Collection和Map区别

JAVA---Collection和Map区别

时间:2022-10-21 18:34:08浏览次数:52  
标签:Map JAVA HashMap 可以 链表 --- 线程 Collection 红黑树

1. Collection<T>

 

==元素都是单值==

 元素是否有序元素是否可重复
List<T> 有序(所有的元素都有索引位置) 可以
Set<T> 无序(没有索引位置) 不可以

1.1. List<T>

 

 数据结构线程安全效率
ArrayList<T> 动态数组 查/修改 新增和删除慢
LinkedList<T> 双向链表 新增/删除快 查/修改慢
Vector<T> 动态数组 性能一般
CopyonWriteArrayList<T> 动态数组 性能最慢

 

1.2. Set<T>

 

 数据结构线程安全元素是否可以为null
HashSet HashMap(数组+单向链表+红黑树) 可以
LinkedHashSet HashMap 可以
TreeSet 红黑树 TreeMap 不可以
CopyOnWriteArraySet CopyOnWriteArrayList 是 Lock 可以

 

2. Map<K,V>

 

 数据结构线程安全key/value是否可以为null
HashMap 位桶+单向链表+红黑树 k/v 都可以
LinkedHashMap 位桶+单向链表+红黑树 k/v 都可以
TreeMap 红黑树 k不可以 v 可以
HashTable hash表 k/v 都不可以
ConcurrentHashmap jdk1.7 锁分段技术 segment jdk1.8 CAS k/v 都不可以
CAS:
 compare and  swap  比较并交换  乐观锁  认为任何操作都不会出现问题  效率很快  查询的场景
    多读少写 ----->  Redis 缓存 (主从同步)  
     
synchornized:
  同步锁  悲观锁  互斥锁  可重入锁
           
 

 

标签:Map,JAVA,HashMap,可以,链表,---,线程,Collection,红黑树
From: https://www.cnblogs.com/wang1999an/p/16814465.html

相关文章

  • python基础-数据类型间的转换
    数据类型转换:将自身数据类型转化成新的数据类型,并拥有新数据类型相关操作的过程;为方便更好的帮助处理业务,将数据变更为更适合业务场景的类型;a='1', 此时想使用数字的......
  • Leanote蚂蚁笔记-私人云笔记服务器搭建
    title:Leanote蚂蚁笔记-私人云笔记服务器搭建date:2020-02-2221:53:24categories:[IT,技术][IT,软件,程序][IT,软件,搭建与配置]tags:leanote蚂蚁笔记笔记......
  • 前端笔记-内联框架-20221021
    HTMLIframe1.定义:用于在网页内显示网页。2.语法<iframesrc="URL"></iframe>3.内联框架属性height:规定高度width:规定宽度frameborder:属性规定是否显示ifra......
  • 【总结】大学生寒假社会实践总结-社区志愿关爱模板
    苏州科技大学大学生寒假社会实践总结关于2018年寒假在沿河社区进行社区志愿关爱实践活动服务的总结 所在学院:电子与信息工程学院学生姓名:戚春阳学号:指导教师: 职务/职......
  • 【总结】大学生寒假社会实践-社区志愿服务模板
      苏州科技大学大学生寒假社会实践报告大学生社区志愿服务的实践报告 所在学院:电子与信息工程学院学生姓名:戚春阳学号:实践组织:沿河社区实践日期:2017年2月1日――201......
  • java 线程详解
    线程目录HelloWorld在Java中有两种方式创建线程,第一种方式是实现​​Runnable​​​接口,第二种方式是继承​​Thread​​类,下面是使用示例:publicclassRunnableDe......
  • GeoDetector --- 最优参数离散化
    安装R包(直接在RStudio安装GD包)install.packages("GD")加载数据library(GD)#加载GD包setwd("X:\\work\\GD")#设置工作路径data1<-read.csv("data_raw.csv")......
  • linux 查看网卡型号(grep -A 1 用法)
    需要grep-A1显示多一行,否则显示一行只能看到芯片组型号lspci-v|grepEthernet-A13b:00.0Ethernetcontroller:MellanoxTechnologiesMT27800Family[Connect......
  • 沉浸式线上虚拟展厅设计是企业与客户远程达成交易意向的重要场所-深圳华锐视点
    对于当下以“90后”“95后”乃至“00后”为家居市场上的消费主力,在购物的产品、渠道和销售场景需求上已经发生翻天覆地的变化。面对消费升级、消费理念和结构变化的环......
  • Linux-history 命令的介绍与使用
    Linux-history命令的介绍与使用介绍在linux下面可以使用history命令查看用户的所有历史操作,同时shell命令操作记录默认保存在用户目录的.bash_history文件中......