Java 基础知识一

       今天写了很多代码,用到了ArrayList,那么好 我们系统的再来了解一下java中的数据结果集的相关知识,java给我们提供了现成的工具类Collections,这里面包含了很多静态的方法,通过在开发中可以直接用到这些方法,当然还有个概念是Collection,这只是个接口,他是集合类的父接口,记住不是所有集合类的父接口,至少map不是,list和set是。下面我把详细的用图来解释集合类之间的区别

 

 

 

 

有順序

可重覆

Thread safe

排序

List

Vector

Yes

Yes

No

Stack

LinkedList

No

ArrayList

Set

HashSet

No

No

No

No

LinkedHashSet

Yes

TreeSet

Yes

Map

Hashtable

No

No

Yes

No

Properties

HashMap

No

LinkedHashMap

Yes

TreeMap

Yes

       我们在编程的过程中常常会用到ArrayList,Map,这根据我们项目中不同的返回类型来定义,对集合类理解到上面的层面是不够的,还需要了解每个集合的存储结构是怎样的,比如说LinkedList 他是双向链表存储模式,ArrayList是顺序存储类似于数组的存储模式等等。上面表格里提到了Thread safe这个问题,其实线程安全的问题可以理解为是否同步,同步则为线程安全,异步则不安全,对了,我记得有个经常会面试的问题:ArrayList是线程不安全的 是异步的,那么我们怎么使ArrayList为线程安全的?答案很简单,还记得上面说的java给我们提供的工具类Collections吗?在实例化ArrayList的时候: List arrayList = Collections.SyncronizedList(new ArrayList());ok 解决了 简单吧 所以说一定要熟悉那些java.util里面的源码 熟悉给我们带来的方便。继续前进!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值