java中集合的介绍,集合和数组的区别,线程安全问题

01 概述

        数组的元素个数是固定的  当长度超过时  就需要从新定义数组
       集合的数目可随着元素的增加而增加
       集合可以看成是对数据结构(如数组等)的封装

02 数组和集合区别

数组缺点
(1) 数组指定容量且无法改变 集合容量动态扩容
(2) 数组无法判断实际存有多少元素插入操作的效率低,删除效率高
数组length只告诉了array的容量
(3) 数组存储的特点是顺序的连续内存 集合有多种实现方式适用不同场合
(4) 数组没有面向对象的特征
集合以类的形式存在,具有封装、继承、多态等类的特性
通过简单的方法和属性调用即可实现各种复杂操作

 数组优点
   (1)   数组的效率高于集合
   (2)   数组能存放基本数据类型和对象
          集合类中只能放对象   存放基本数据类型会自动装箱

03 集合区别

1 集合分为Collection 和 Map
Collection 分为List 和 Set
Map是key-value形式

2 Collecrion 分为List 和Set
List 接口存储不唯一 有序(插入和输出顺序一样)的对象
Set 接口存储唯一 插入和输出顺序不一样

3 Map接口存储键值对 提供key到value的映射
Key无序 唯一 如果只使用key存储,而不使用value,那就是Set
value不要求有序 允许重复
映射关系可以是一对一或多对一


04 线程安全 不安全

可以使用Collections类中的静态方法把线程不安全的变成线程安全的
ynchronizedList ynchronizedSet ynchronizedMap

ArrayList 不安全
LinkedList 不安全
Vector 安全

HashSet 不安全
LinkedHashSet 不安全
TreeSet 不安全

HashMap 不安全
LinkedHashMap 不安全
TreeMap 不安全
Hashtable 安全

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值