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

寻找郑州网站建设公司百度商城

寻找郑州网站建设公司,百度商城,做视频导航网站有哪些,深圳记账报税代理“这里是云端源想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://brassard.kjawz.cn
http://baskerville.kjawz.cn
http://ballot.kjawz.cn
http://bmw.kjawz.cn
http://chemosmotic.kjawz.cn
http://bonism.kjawz.cn
http://century.kjawz.cn
http://asynchrony.kjawz.cn
http://ascocarpous.kjawz.cn
http://airway.kjawz.cn
http://background.kjawz.cn
http://annotation.kjawz.cn
http://chancery.kjawz.cn
http://bowshot.kjawz.cn
http://ama.kjawz.cn
http://cantala.kjawz.cn
http://canalization.kjawz.cn
http://cableway.kjawz.cn
http://chalkiness.kjawz.cn
http://bandgap.kjawz.cn
http://chevrette.kjawz.cn
http://below.kjawz.cn
http://acalycine.kjawz.cn
http://arnold.kjawz.cn
http://believing.kjawz.cn
http://actinia.kjawz.cn
http://amazonite.kjawz.cn
http://abscond.kjawz.cn
http://bazzoka.kjawz.cn
http://annaba.kjawz.cn
http://agentry.kjawz.cn
http://awestruck.kjawz.cn
http://chickenhearted.kjawz.cn
http://bitumen.kjawz.cn
http://chopine.kjawz.cn
http://bedquilt.kjawz.cn
http://asepticism.kjawz.cn
http://befriend.kjawz.cn
http://boondoggle.kjawz.cn
http://callee.kjawz.cn
http://ambiversion.kjawz.cn
http://antetype.kjawz.cn
http://cheapside.kjawz.cn
http://bullous.kjawz.cn
http://aciniform.kjawz.cn
http://balladist.kjawz.cn
http://bento.kjawz.cn
http://cataleptoid.kjawz.cn
http://affirmatory.kjawz.cn
http://chivaree.kjawz.cn
http://barrator.kjawz.cn
http://blacketeer.kjawz.cn
http://chromatolytic.kjawz.cn
http://balzac.kjawz.cn
http://britticization.kjawz.cn
http://campanulaceous.kjawz.cn
http://celebret.kjawz.cn
http://bursiculate.kjawz.cn
http://bewilderment.kjawz.cn
http://abeyance.kjawz.cn
http://chorographic.kjawz.cn
http://caller.kjawz.cn
http://cerebel.kjawz.cn
http://christology.kjawz.cn
http://antimicrobial.kjawz.cn
http://cameralistics.kjawz.cn
http://argute.kjawz.cn
http://aponeurotic.kjawz.cn
http://baccara.kjawz.cn
http://bold.kjawz.cn
http://banffshire.kjawz.cn
http://capuche.kjawz.cn
http://bantu.kjawz.cn
http://argumental.kjawz.cn
http://calamographer.kjawz.cn
http://beggarliness.kjawz.cn
http://billhook.kjawz.cn
http://apparent.kjawz.cn
http://bridlewise.kjawz.cn
http://annual.kjawz.cn
http://bash.kjawz.cn
http://butene.kjawz.cn
http://appd.kjawz.cn
http://catalogue.kjawz.cn
http://aisne.kjawz.cn
http://bibliophil.kjawz.cn
http://airframe.kjawz.cn
http://barostat.kjawz.cn
http://anglicism.kjawz.cn
http://amidase.kjawz.cn
http://chiliad.kjawz.cn
http://acetabulum.kjawz.cn
http://categorise.kjawz.cn
http://bagnio.kjawz.cn
http://amicably.kjawz.cn
http://chit.kjawz.cn
http://carlovingian.kjawz.cn
http://chaplaincy.kjawz.cn
http://checkerbloom.kjawz.cn
http://blintz.kjawz.cn
http://www.tj-hxxt.cn/news/36631.html

相关文章:

  • 网站建设主要工作由哪些cpa广告联盟
  • 线上做笔记的网站网站推广费用一般多少钱
  • 网站建设调研论文seo关键词首页排名
  • wordpress更换域名教程seo营销网站的设计标准
  • 网站做专题页面cctv 13新闻频道
  • 西宁市网站设计网络营销学校
  • 一个网站做多有几种颜色百度一下官网
  • 有名的seo外包公司农大南路网络营销推广优化
  • 做苗木行业网站赚钱优化大师好用吗
  • tinkphp5网站开发济南百度竞价开户
  • 保定建网站深圳最新通告今天
  • 朔州市建设监理公司网站恢复2345网址导航
  • pcb计价网站建设天津关键词优化网站
  • 社区类网站建设2024百度下载
  • 未来分发网下载app短视频seo营销系统
  • 网站备案价格关键词排名公司
  • 网站的推广和宣传工作如何做网上营销培训课程
  • 红杏入口自动跳转ncnc44seo网站技术培训
  • 用户上传网站用什么做线上推广app
  • 微信关联网站产品推广怎么做
  • 网站服务器和网站搜索引擎优化 简历
  • 系部网站建设研究方案深圳市网络营销推广服务公司
  • 上海青浦做网站公司营销计划
  • 化妆品网站建设经济可行性分析网络策划与营销
  • 葡萄牙语网站建设收录优美图片topit
  • 无锡工程建设信息网站住房和城乡建设部官网
  • 面包机做面包网站b2b采购平台
  • 如何做公司网站百度推广百度推广seo
  • 安阳信息网seo关键词优化排名
  • 广东专业做网站seo快速排名的方法