目录
五、ArrayList,LinkedList,Vector三者之间的异同?
六、装箱和拆箱(在jdk1.5之后引入了自动装箱及自动拆箱功能)
一、集合简介
集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容:接口:是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。 之所以定义多个接口,是为了以不同的方式操作集合对象实现(类):是集合接口的具体实现。
二、集合框架的类图
类图统称也叫做UML(统一建模图)
UML图形包括
类图
时序图
组件图
部署图
制作方式:
第一种:工具:PowerDesigner
第二种:在线网站:www.processon.com
关系的解释:
继承关系:子类继承父类的行为或特征;
依赖关系:是接口里面有某个方法需要用到某个类或者接口对象。
三、Collection接口
Collection是集合框架的顶级接口(它是所有单列集合的父接口,除开Map,接口都要继承它)
四、List接口
4.1List接口介绍
java.util.List 接口继承自 Collection 接口,是单列集合的一个重要分支,习惯性地会将实现了 List 接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。
4.2List接口特点
1. List集合中的元素是可以重复的!
2. List集合中的元素是有序的!
4.3List取值方法
示例:
//实例化List接口
List myl = new ArrayList();
//往集合添加数据
myl.add(1);
myl.add(5);
myl.add(2);
myl.add(6);
myl.add(9);
myl.add(3);
myl.add(4);
三种方法循环取值:
1. foreach 循环
for (Object o: myl) {
System.out.println(o);
}
2. for 循环
for (int i = 0; i < myl.size();i++) {
System.out.println(myl.get(i));
}
3. Iterator(迭代器):一种对象,能够用来遍历目标中的部分或者全部元素
ListIterator iterator = myl.listIterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
4.4LIst优化
用到的主要技术是:反射
// 反射
static void print(List arrayList) throws Exception {
Class c = arrayList.getClass();
Field elementDataField = c.getDeclaredField("elementData");
elementDataField.setAccessible(true);
Object[] arr = (Object[]) elementDataField.get(arrayList);
System.out.println("elementData.length=" + arr.length);
}
五、ArrayList,LinkedList,Vector三者之间的异同?
同:三个类都是实现了List接口,存储数据的特点相同:存储有序的、可重复的数据
不同点:
ArrayList :作为List接口的主要实现类,以连续的数组结构存储数据,增删改慢、查询快(下标)线程不安全,效率高
LinkedList:以链表的结构存储数据,对于增删改快、查询慢,使用此类效率比ArrayList高
Vector :作为List接口的古老实现类;线程安全的,效率低已过时
六、装箱和拆箱(在jdk1.5之后引入了自动装箱及自动拆箱功能)
6.1装箱:(从小到大)
故名思意把一个小箱子的装到一个大的箱子里面
代码演示:
值类型 -> 引用类型
int a = 10;
Integer b = a;
6.2拆箱:(从大到小)
故名思意是把一个大的箱子拆开拿出里面的小箱子
代码演示:
引用类型 -> 值类型
Integer c = 20;
int d = c;