目录
6.ArrayList、LinkedList和Vector的区别、
1.什么是UML?
UML是统一建模语言的简称,它是一种由一整套图表组成的标准化建模语言。UML用于帮助系统开发人员阐明,展示,构建和记录软件系统的产出。UML代表了一系列在大型而复杂系统建模中被证明是成功的做法,是开发面向对象软件和软件开发过程中非常重要的一部分。UML主要使用图形符号来表示软件项目的设计,使用UML可以帮助项目团队沟通、探索潜在的设计和验证软件的架构设计。
2.集合框架
此图能够更好的理解集合框架List Set Map的区别
3.List集合
1.特点
有序
List集合数据存进去的顺序和取出来的顺序一致 遍历结果
不唯一
List集合数据允许添加重复数据 遍历结果
2.遍历方式
for下标
foreach
迭代器
3.删除
for循环正向删除
这里大家要注意了!要将lis.size();定义在外面,因为定义在里面则size会重新定义长度,会导致少删除两个如下图:
for循环逆向删除
迭代器删除(推荐)
这里需要注意的是要先next再remove
4.迭代器原理
我们用一段代码来看
Iterator it = lis.iterator();
while (it.hasNext()){
Object next = it.next();
System.out.println(next);
}
hasNext返回的结果值为布尔类型它所判断的仅仅为该值在不在,返回true或false,不移动下标(如下图的直线)
next移动到下一个下标处,并提取到该下标的值(如下图的曲线)
5.泛型
从 Java 1.5 开始提供了泛型。泛型可以在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率。
注:JDK1.5以上才有。
1)以类型为参数的类叫做泛型
2)泛型的默认类型为Object
3)作用:提高程序的健壮性、简化代码
public static void main(String[] args) {
List lis = new ArrayList();
lis.add(1);
lis.add(2);
lis.add(3);
lis.add(4);
lis.add(5);
ListIterator<Integer> it = lis.listIterator();
//Iterator it = lis.iterator();
while (it.hasNext()){
Integer next = it.next();
// Integer val = Integer.parseInt(next.toString());
if (next % 2 == 0) {
System.out.println(next);
}
}
}
可以通过泛型修改返回的值类型,避免了大量代码的转换
6.ArrayList、LinkedList和Vector的区别、
1.ArrayList和LinkedList的区别
相同点
1、LinkedeList和ArrayList都实现了List接口。
2、ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references)。
不同点
1、ArrayList底层实现是数组,而LinkedList是双向链表。
2、ArrayList查询快(下标)、增删改慢、LinkedList是查询慢,但是在插入删除时效率比较高。
2.ArrayList和Vector的区别
相同点
1、ArrayList和Vector都是用数组实现的
2、默认初始化大小都是10
不同点
1、Vector多线程是安全的,而ArrayList不是。Vector类中的方法很多有synchronized进行修饰,这样就导致了Vector在效率上无法与ArrayList相比;
2、两个都是采用的线性连续空间存储元素,但是当空间不足的时候,两个类的增加方式是不同的。(ArrayList每次存储时会检查空间大小,不够时会扩充为原来的1.5倍,Vector会扩充为原来空间的2倍)
大家多多关注关注博主!持续更新^_^
标签:框架,ArrayList,List,next,泛型,Vector,lis,集合 From: https://blog.csdn.net/FJQ52000/article/details/140459932