Java 基础知识一

来源:互联网 发布:网络直播美女踩死动物 编辑:程序博客网 时间:2024/06/05 00:41

       今天写了很多代码,用到了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里面的源码 熟悉给我们带来的方便。继续前进!

原创粉丝点击