当前位置: 首页 > news >正文

寻找郑州网站建设公司海外推广专员

寻找郑州网站建设公司,海外推广专员,网站开发看谁的教程,织梦cms怎么做网站地图“这里是云端源想IT,帮你轻松学IT” 嗨~ 今天的你过得还好吗? 生命如同寓言 其价值不在于长短 而在于内容 🌞 - 2023.11.14 - 通过前面文章的介绍,相信大家对Java集合框架有了简单的理解,接下来说说集合中最常使…

“这里是云端源想IT,帮你轻松学IT”

嗨~ 今天的你过得还好吗?

生命如同寓言

其价值不在于长短

而在于内容

🌞

- 2023.11.14 -

通过前面文章的介绍,相信大家对Java集合框架有了简单的理解,接下来说说集合中最常使用的一个集合类的父类,List 集合。那么,List到底是什么?它有哪些特性?又该如何使用呢?让我们一起来揭开List的神秘面纱。

List,顾名思义,就是列表的意思。在Java中,List是一个接口,它继承了Collection接口,表示一个有序的、可重复的元素集合。下面我们从List 接口的概念、特点和常用方法等方面来介绍List。

图片

一、List 接口介绍

java.util.List 接口,继承自 Collection 接口(可以回看咱们第二篇中的框架体系),List 接口是单列集合的一个重要分支,习惯性地将实现了List 接口的对象成为List集合。

在list 集合中允许出现重复的元素,所有的元素对应一个整数型的序号记载其在容器中的位置进行存储,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还是 有序的,即元素的存入和取出顺序一致。

List 接口的特点:

  • 它是一个元素存取有序的集合。例如,存元素的顺序是3,45,6。那么集合中,元素的存储就是按照3,45,6的顺序完成的)。

  • 它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。

  • 可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。

图片

List接口中常用方法:

List作为Collection集合的子接口,不但继承了Collection接口中的全部方法,而且还增加了一些根据元素索引来操作集合的特有方法,如下:

  • public void add(int index, E element):将指定的元素,添加到该集合中的指定位置上。

  • public E get(int index):返回集合中指定位置的元素。

  • public E remove(int index):移除列表中指定位置的元素, 返回的是被移除的元素。

  • public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。

编程学习,从云端源想开始,课程视频、在线书籍、在线编程、一对一咨询……你想要的全部学习资源这里都有,重点是统统免费!点这里即可查看

通过代码来体验一下:

    public class Demo1List {public static void main(String[] args) {List<String> names = new ArrayList<>();//先往集合中添加几个元素names.add("张三");names.add("李四");names.add("王五");System.out.println("集合---"+names);//● public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。names.add(1, "赵六");System.out.println("集合---" + names);//● public E get(int index):返回集合中指定位置的元素。String name = names.get(3);System.out.println("元素---" + name);//● public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。String remove = names.remove(2);System.out.println("移除后的集合" + names);//     String remove1 = names.remove(10); //报错了//     System.out.println("移除---" + remove1);//● public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。names.set(1, "张二狗");System.out.println("集合set方法---" + names);}
}

二、List 集合子类

List接口有很多实现类,如ArrayList、LinkedList等,它们各自有着不同的特点和应用场景。下面分别来介绍一下常用的ArrayList 集合和LinkedList集合。
在这里插入图片描述

ArrayList 集合

通过 javaApi 帮助文档 ,可以看到 List的实现类其实挺多,在此选择比较常见的 ArrayList LinkedList 简单介绍。

ArrayList 有以下两个特点:

  • 底层的数据结构是一个数组;

  • 这个数组会自动扩容,看起来像一个长度可变的数组。

  • 通过阅读源码的方式,简单分析下这两个特点的实现:

在这里插入图片描述

在实例化ArrayList时,调用了对象的无参构造器,在无参构造器中,首先看到变量 elementData 的定义就是一个数组类型,它存储的就是集合中的元素,其次在初始化对象时,把一个长度为0的Object[] 数组,赋值给了 elementData 。这就是刚刚所说的 ArrayList 底层是一个数组

下面再来看自动扩容这个特点又是怎么实现的。
图片

在向集合中添加一个元素之前,会计算集合中数组的长度是否满足,可以通过代码追踪,通过一系列方法的调用,会使用 arrays 工具类的复制方法 (根据文档,介绍复制方法)创建一个新的长度的数组,将添加的元素保存进去,这就是说的数组可变,自动扩容

ArrayList的两个特点就介绍到这里了,大家有兴趣的可以去读读源码,挺有意思。

重点说明:

之前讲过,数组结构的特点是元素增删慢,查找快。由于java.util.ArrayList 集合数据存储的结构是数组结构,所以它的特点也是元素增删慢,但是查询快。

由于日常开发中使用最多的功能为查询数据、遍历数据,所以ArrayList 也是最常使用的集合。

而因着这些特点呢,在日常开发中,有些开发人员就非常随意地使用ArrayList完成任何需求,这是不严谨,这种编码方式也是不提倡的。

在这里插入图片描述

接着来看看下面这个实现类:java.util.LinkedList 集合数据存储的结构是链表结构。方便元素添加、删除的集合。

LinkedList是一个双向链表,那么双向链表是什么样子的呢,我上篇文章说过的结构图:

inkedList 是由链表来说实现的,并且它实现了List接口的所有方法,还增加了一些自己特有的方法。

那么之前介绍过双向链表的特点,所以LinkedList的特点就是:元素添加,删除速度快,而查询速度慢。

常用方法

LinkedList 作为 List的实现类,List中的方法LinkedList都是可以使用,所以这些方法就不做详细介绍;而特别练习一下 linkedList 提供的特有方法,因为在实际开发中对一个集合元素的添加与删除也经常涉及到首尾操作。
在这里插入图片描述

下面看下演示代码:

 public class Demo2LinkedList {public static void main(String[] args) {LinkedList<String> link = new LinkedList<String>();//添加元素link.addFirst("abc1");link.addFirst("abc2");link.addFirst("abc3");System.out.println(link);// 获取元素System.out.println(link.getFirst());System.out.println(link.getLast());// 删除元素System.out.println(link.removeFirst());System.out.println(link.removeLast());while (!link.isEmpty()) { //判断集合是否为空System.out.println(link.pop()); //弹出集合中的栈顶元素}System.out.println(link);}}

三、总结

虽然List功能强大,但我们也不能滥用。在使用时,我们需要注意以下几点:

  • 尽量避免频繁的插入和删除操作,因为这会影响List的性能。在这种情况下,我们可以考虑使用LinkedList。

  • List的大小是有限的,当元素超过List的最大容量时,会抛出OutOfMemoryError异常。因此,我们需要合理地设置List的初始容量和最大容量。

在这里插入图片描述

总的来说,Java单列集合List是一个非常强大的工具,它可以帮助我们解决很多编程问题。只要我们能够正确地使用它,就能够在编程的世界中找到无尽的乐趣。

在这里插入图片描述

我们下期再见!

END

文案编辑|云端学长

文案配图|云端学长

内容由:云端源想分享

http://www.khdw.cn/news/52334.html

相关文章:

  • 西安房产网签查询系统南宁网站seo外包
  • 柳州电商网站建设免费留电话的广告
  • 做剧情游戏的网站网络营销该如何发展
  • 局域网视频网站建设点播系统seo优化在线
  • 大连华南网站制作公司安徽关键词seo
  • 虚拟网站怎么做兰州网络推广公司哪家好
  • 郑州市住房和城乡建设委员会网站seo网上课程
  • 3.15网站建设鹤壁网络推广哪家好
  • 便利店网站建设拓扑图韶关seo
  • 网店运营推广方式如何提高搜索引擎优化
  • 2008系统做网站小程序推广的十种方式
  • 产品开发流程的六个阶段是苏州seo网站推广哪家好
  • 天津企业做网站多少钱windows优化大师是系统软件吗
  • 服务网站排名咨询流量推广怎么做
  • 武汉 开发 公司 网站建设最新seo网站优化教程
  • 高端网站案例欣赏江门seo网站推广
  • 平面设计线上培训班哪个好搜索引擎优化的英语简称
  • 阿里云虚拟主机可以做几个网站武汉软件测试培训机构排名
  • 个人怎么做课程网站开网店3个月来亏了10万
  • 做个网站一年要多少钱百度官网登录
  • 做网站选择哪家运营商培训心得体会范文大全2000字
  • 潍坊哪里能找到做网站的最新seo操作
  • 网站 当前时间 代码网络营销工具分析
  • 包头市做网站手机百度app最新版下载
  • 广告设计公司实践报告杭州seo网
  • 重庆做营销网站建设seo的内容主要有哪些方面
  • 成都家具企业网站建设南京网站制作设计
  • 网站后台seo设置seo收录查询工具
  • 流量宝做网站流量app推广
  • 西安网站建设sxyun五个常用的搜索引擎