Java集合的一点小整理

今天将以前的学习过的集合知识复习了一些,感觉有点收获就记录下来。下面就进入主题。

我们应该知道集合可以分为两类,分别是Iterable接口和Map接口这两类并以这两类为基础往下延伸。(按本人的理解就是一个树的概念)

首先我先说说以Iterable接口为基础外下延伸的一个大概,在集合中Iterable接口由Collection接口继承而Collection接口又由List、Set、Queue接口继承。这就是继承Iterable接口集合的一个大概。

在这里先说下List、Set、Queue接口的特点

List接口的特点是数据有序,数据可以重复,Set接口与之相反数据无序且数据不可重复。Queue接口的特点是先进先出。

在List接口下面又可以分出ArrayList类和LinkedList类。

ArrayList类的特点就是get和set调用花费常数时间,进行数据库的update代价昂贵。在我看来其实就是ArrayList类适合进行数据库的查询,进行数据库的update性能不高。

LinkedList接口的特点与ArrayList类相反也就是LinkedList接口适合进行数据库的update,不适合进行数据库的查询。

同时Set接口下面可以分为HashSet、TreeSet、LinkedHashSet类。

HashSet类的特点速度快,没有明显的顺序,这个快是指Hashset干什么都快,并且集合元素可以为null但是只能放一个null。

TreeSet类的特点可以将结果升序保存对象。

LinkedHashSet类特点可以按照被添加的顺序保存对象。

Queue接口在这里不做详细解释。(本人也不是很熟= =)

这大概就是继承Iterable接口集合的大概。

 

在集合中,Map接口被HashMap、TreeMap、LinkedHashMap类继承。

其中Map的保存数据是按键值对形式来保存的。

其中HashMap类提供了最快的访问技术,没有按照明显的顺序保存元素

TreeMap类比较结果的升序保存键。

LindHashMap类是按照插入顺序保存键,同时还保留了HashMap的查询速度。

ps:这里只整合了一小部分,还有一些没有整合。有兴趣的可以自行去查询。