数组的缺点,长度不可变,类型单一
数组的效率优于集合
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允许
原文地址:http://www.cnblogs.com/-try/p/3700295.html