集合框架之List

目录

1.什么是UML?

2.集合框架

3.List集合

1.特点

  有序

  不唯一

 2.遍历方式

  for下标

 foreach

  迭代器

 3.删除

 for循环正向删除

for循环逆向删除

迭代器删除(推荐)

4.迭代器原理

5.泛型

6.ArrayList、LinkedList和Vector的区别、

1.ArrayList和LinkedList的区别

 相同点

 不同点

2.ArrayList和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倍)

大家多多关注关注博主!持续更新^_^

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值