首页 > 其他分享 >集合框架之List

集合框架之List

时间:2024-07-16 16:57:11浏览次数:17  
标签:框架 ArrayList List next 泛型 Vector lis 集合

目录

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倍)

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

标签:框架,ArrayList,List,next,泛型,Vector,lis,集合
From: https://blog.csdn.net/FJQ52000/article/details/140459932

相关文章

  • .NET框架引用某些ASP.NET Core包显示被弃用
    原因:随着.NETCore3.0发布,许多ASP.NETCore程序集不再作为包发布到NuGet。而是改为将这些程序集包含在通过.NETCoreSDK和运行时安装程序安装的 Microsoft.AspNetCore.App 共享框架中。自.NETCore3.0起,使用 Microsoft.NET.Sdk.Web MSBuildSDK的项目隐式引用......
  • 数据结构和算法——3.列表(List)
    列表(List)线性表的定义➢线性表:简称表,是n(n≥0)个具有相同类型的数据元素的有限序列➢线性表的长度:线性表中数据元素的个数➢空表:长度等于零的线性表,记为:......
  • Spring框架
    Spring框架中都用到了哪些设计模式?工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例;单例模式:Bean默认为单例模式。代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术;模板方法:用来解决代码重复的问题。比如.RestTemplate,JmsTemplate,......
  • Mybatis框架
    请说说MyBatis的工作原理读取MyBatis配置文件:mybatis-config.xml为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,例如数据库连接信息。加载映射文件。映射文件即SQL映射文件,该文件中配置了操作数据库的SQL语句,需要在MyBatis配置文件mybatis-config.x......
  • SpringMVC框架
    SpringMVC的主要组件?前端控制器DispatcherServlet(不需要程序员开发)作用:接收请求、响应结果,相当于转发器,有了DispatcherServlet就减少了其它组件之间的耦合度。处理器映射器HandlerMapping(不需要程序员开发)作用:根据请求的URL来查找Handler处理器适配器HandlerAd......
  • WPF ListBox's itemsource depend on another listbox's selecteditem
    //xaml<ListBoxGrid.Row="1"Grid.Column="0"ItemsSource="{Binding}"x:Name="countryLbx"DisplayMemberPath="CountryName"/><ListBoxGrid.Row="1"Grid.Column="1&......
  • 木舟0基础学习Java的第十九天(装饰设计模式,转换流,对象操作流(序列化),Properties集合)
    装饰设计模式创建一个接口用一个类实现接口再创建一个类实现这个接口第二个类中包含第一个类中的方法和自己的方法还可以增强案例:publicinterfaceCar{publicvoidrun();publicvoidcarry();}publicclassTaxiimplementsCar{@Overridepub......
  • Spring Task定时任务框架
    文章目录简单介绍说明说明:作用:一般应用场景:重点:cron表达式简介与举例:通配符:cron表达式案例:自动生成工具使用举例:准备小案例:简单介绍说明说明:SpringTask是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。作用:定时自动执行某段代码一......
  • 【框架】PHP框架详解-symfony框架
    目录一、框架概述二、核心组件三、特点与优势四、开发流程新机制层次网络应用框架包涵观念兼容的数据库结构开发环境捆绑应用开源项目公共特性Symfony是一个用PHP语言编写的开放源代码的Web应用框架,旨在加速Web应用程序的开发过程,提高代码的可维护性和可扩展性......
  • 前端测试框架(如Jest、Mocha、Jasmine)特点及优势
    前端测试框架(如Jest、Mocha、Jasmine)特点和优势。在前端开发中,测试是一个非常重要的环节,它确保了代码的质量和稳定性。关于前端测试框架,我虽然没有直接的使用经验,但可以根据业界普遍认可和广泛使用的前端测试框架,如Jest、Mocha和Jasmine,来谈谈它们的特点和优势。Jest特点......