java集合就像一个容器,可以存储任何类型的数据,也可以结合泛型来存储具体的类型对象,在程序运行时,java集合可以动态的进行扩展,随着元素的增加而扩大,在java中集合通常存在于java.util包中
这里说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化(存放在硬盘当中的数据)的存储(.txt或者jpg或者avi 等)
集合框架是怎样运行的
java集合中分两个体系
Collection接口
Collection是 单列数据 ,定义了存取一组对象的方法的集合Collection中又分为List接口与Set接口
List接口: 元素有序,且可重复的集合 "动态数组"
接口实现:ArrayList,LinkedList,Vector
Set接口:元素无序,且不可重复的集合 "去重"
接口实现: HashSet,LinkedHashSet,TreeSet
Collection接口继承树:这里的实线表示继承关系,虚线表示实现关系
Map接口
Map是双列数据,保存具有映射关系 "key - value键值对的"集合
接口实现:HashMap,LinkedHashMap,TreeMap ,Hashtable,Properties
list接口
什么是list接口:
ArrayList:
ArrayList的特点:作为list接口的主要实现类,线程不安全,执行效率高 ,底层使用Object[]数组 的方式进行存储,,elementData 的方式进行存储、
ArrayList在jdk7和jdk8的比较
jdk7:
ArrayList list = new ArrayList();//底层创建了长度是10 的Object[] 类型的数组elementData
list.add(123);//elementData[0] = new Integer(123);
。。。一直添加数据添加到第11位
list.add(11),如果