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:这里只整合了一小部分,还有一些没有整合。有兴趣的可以自行去查询。