首页 > 代码库 > 集合

集合

数组的缺点,长度不可变,类型单一

         数组的效率优于集合

Java的集合框架是有多个类跟接口组成,

集合中不能放基本数据类型

Java1.4以后添加的新特性 自动装箱、自动拆箱,所以看起来集合可以放基本数据类型

         集合框架提供的接口

         Collection

                   放单一值的元素

                            每一个元素只能有一个值

                  

                   Collection的接口

                  

                   List  

                            有序的

                                     放进list的顺序就是当中值的排放顺序

                                               可重复

                                     实现类

                                               ArrayList使用最频繁的集合 出现的版本要晚(JDK 1.2出现的集合类)

                                                        线程不安全(效率高于vector)

                                                        数组结构

Vector(JDK 1.0出现的集合类)线程安全

 

LinkedList (链表式结构)

每个元素中都存放当前元素的前一个元素的地址以及后一个元素的地址

添加删除

         前面添加或者删除数据,linkedList的效率高于arrayList

         后面添加或者删除数据 arrayList的效率高于linkedList(意义不大)

查询

         ArrayList比linkedList 效率高

                   Set

                            无序(排放方式放进去的顺序无关,)

                                     不可重复

                            实现类(内部顺序是按照hash值排序)

                                               HashSet(效率比较高)

                                                        Iteratot (迭代器)循环方法

                                              

                                                       HasNext 指向下一个

                                                        next 获取当前值

                                              

                                               treeSet

                                                        hashset 不能自定义排序

                                                        treeset 可以自定义排序

                                                        hashset 效率高于treeset

                                              

         Map

                   键值对

                            每一个元素都有两个值,一个键(不能重复) 一个值 键值对应

                   实现类

                   HashMap

                            中的键是根据hash值排列的

                            Hashmap的范型需要穿两个值 <key的类型,要存储的类型>

                            可以通过keySet(获取全部键,通过建进行循环)

                   TreeMap

                            HashMap不能自定义排序

                            TreeMap可以自定义排序 (键的排序)

                            HashMap效率高于TreeMap

 

                   HashTable

                            1.HashMap(jdk1.2出现的集合类)要晚于Hashtable(jdk1.0出现的集合类)

                            2.线程安全hashtable 线程不安全hashMap

                            3.hashTable 不允许存放空(null)键空值(null)hashMap允许