【Java--数据结构】提升数据处理速度!深入理解Java中的顺序表机制

欢迎关注个人主页:逸狼


创造不易,可以点点赞吗~

如有错误,欢迎指出~

目录

 两种创建顺序表的方法及区别

认识ArrayList的构造方法

不带参数的构造方法

带参数的构造方法

利用Collection 构造方法

举例

ArrayList 常用方法演示

add

addAll

remove

subList

ArrayList 的遍历方法

for i

for each

使用迭代器

法一:

法二:

倒着打印


 两种创建顺序表的方法及区别

        //两种创建的顺序表的 类型是不一样的//arrayList 访问的是当前对象的方法,方法包括了list接口中的方法,
//原因是ArrayList继承了List接口ArrayList<Integer> arrayList=new ArrayList<>();//通过list访问的是list接口中的方法List<Integer> list =new ArrayList<>();

认识ArrayList的构造方法

不带参数的构造方法

 elementData只是一个数组

所以这里不带参数的构造方法 并没有给数组分配大小,数组的长度是0

但是第一次调用add方法时,会给arrayList分配大小为10的内存

带参数的构造方法

初始化指定数组大小

利用Collection 构造方法

利用其他 Collection 构建 ArrayList

举例

例如可以将ArrayLIst的引用 当作参数、原因是ArrayList实现了Collection接口。

        ArrayList<Integer> arrayList=new ArrayList<>();ArrayList<Integer> arrayList1=new ArrayList<>(arrayList);

ArrayList 常用方法演示

add

默认尾插数据

第一次调用add方法时,会给arrayList分配大小为10的内存

        ArrayList<Integer> arrayList=new ArrayList<>();arrayList.add(10);arrayList.add(20);

addAll

将数据一次性添加

        ArrayList<Integer> arrayList=new ArrayList<>();arrayList.add(10);arrayList.add(20);ArrayList<Integer> arrayList1=new ArrayList<>();//这里是将arrayList中的10和20全部添加到了arrayList1中arrayList1.addAll(arrayList);//addAll:将数据一次性添加System.out.println(arrayList1);

结果

remove

通过下标删除元素

        ArrayList<Integer> arrayList=new ArrayList<>();arrayList.add(10);arrayList.add(11);arrayList.add(14);arrayList.add(20);arrayList.remove(1);//参数是下标arrayList.remove(Integer.valueOf(10));//通过valueOf找到10并返回他的下标System.out.println(arrayList);

结果

subList

截取顺序表的值(下标范围是[m,n) ,即从m到n,包含m,但不包含n )

        ArrayList<Integer> arrayList=new ArrayList<>();arrayList.add(10);arrayList.add(14);arrayList.add(11);arrayList.add(20);arrayList.add(19);System.out.println(arrayList);List<Integer> list=arrayList.subList(1,3);//截取下标为[1,3)的值System.out.println(list);

结果

注意

截取的不是值,是下标的 地址引用,所以改变list的值也会改变arrayList的值

        list.set(0,99);System.out.println(list);System.out.println(arrayList);

结果

ArrayList 的遍历方法

for i

        for (int i = 0; i < arrayList.size(); i++) {System.out.print(arrayList.get(i)+" ");}System.out.println();

for each

        for (Integer x:arrayList) {System.out.print(x+" ");}System.out.println();}

使用迭代器

只要继承了iterable的都可以使用迭代器进行遍历顺序表

法一:

        System.out.println("____Iterator_____");//使用迭代器,遍历顺序表   默认是从0下标开始打印Iterator<Integer> it= arrayList.iterator();//Iterator是一个接口while(it.hasNext()){//若下一个数存在,就满足条件System.out.print(it.next()+" ");//打印下一个}System.out.println();System.out.println("____ListIterator_____");

法二:

        //第二种方法ListIterator<Integer> it2= arrayList.listIterator();//listIterator实现了Iterator接口while(it.hasNext()){//若下一个数存在,就满足条件System.out.print(it2.next()+" ");}System.out.println();

倒着打印

        System.out.println("____ListIterator倒着打印_____");//第二种方法  倒着遍历ListIterator<Integer> it3= arrayList.listIterator(arrayList.size());//从arrayList.size(顺序表的末尾)开始遍历while(it3.hasPrevious()){//若上一个数存在,就满足条件System.out.print(it3.previous()+" ");}System.out.println();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/2750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux进程详解三:进程状态

文章目录 进程状态Linux下的进程状态运行态-R阻塞态浅度休眠-S深度睡眠-D暂停状态-T暂停状态-t 终止态僵尸-Z死亡-X 孤儿进程 进程状态 进程的状态&#xff0c;本质上就是一个整型变量&#xff0c;在task_struct中的一个整型变量。 状态的存在决定了你的后续行为动作。 Linu…

直接用表征还是润色改写?LLM用于文生图prompt语义增强的两种范式

直接用表征还是润色改写&#xff1f;LLM用于文生图prompt语义增强的两种范式 导语 目前的文生图模型大多数都是使用 CLIP text encoder 作为 prompt 文本编码器。众所周知&#xff0c;由于训练数据是从网络上爬取的简单图文对&#xff0c;CLIP 只能理解简单语义&#xff0c;而…

拿捏 顺序表(1)

目录 1. 顺序表的分类2. 顺序表实现3. 顺序表实现完整代码4. 总结 前言: 一天xxx想存储一组数据, 并且能够轻松的实现删除和增加, 此时数组大胆站出, 但是每次都需要遍历一遍数组, 来确定已经存储的元素个数, 太麻烦了, 于是迎来了顺序表不屑的调侃: 数组你不行啊… 顺序表是一…

C++面向对象——类与对象

文章目录 类与对象构造函数、析构函数get/set方法函数&#xff1a;类内声明、类外定义staticthis指针友元名字空间 类与对象 #include<iostream> #include<string> using namespace std; /* 类与对象 */ class Person{public:string name;// 固有属性&#xff0c…

第二期书生浦语大模型训练营第四次笔记

大模型微调技术 大模型微调是一种通过在预训练模型的基础上&#xff0c;有针对性地微调部分参数以适应特定任务需求的方法。 微调预训练模型的方法 微调所有层&#xff1a;将预训练模型的所有层都参与微调&#xff0c;以适应新的任务。 微调顶层&#xff1a;只微调预训练模型…

oracle 12c+ max_string_size参数

一个客户的数据库版本是19.3,在做数据库复制的时候,目标端报错了,查看了一下问题发现表的字段长度有不对,在12c以前我们都知道varchar的长度最大是4000,但是客户这里居然有32767: 把客户的建表语句弄出来,放到我的一个19c的测试环境进行测试: 发现报错了: 这里报错很明显了,是M…

开通一个幻兽帕鲁专用服务器多少钱?阿里云挺便宜

阿里云开通一个幻兽帕鲁专用服务器多少钱&#xff1f;26元1个月。目前阿里云幻兽帕鲁专用服务器4核16G配置26.52元1个月、149元半年&#xff0c;8核32G服务器90.60元一个月、271.80元3个月&#xff0c;幻兽帕鲁服务器活动页面 aliyunfuwuqi.com/go/palworld 阿里云服务器网整理…

$nextTick 原理及作用

Vue 的 nextTick 其本质是对 JavaScript 执行原理 EventLoop 的一种应用。 nextTick 的核心是利用了如 Promise 、MutationObserver、setImmediate、setTimeout的原生 JavaScript 方法来模拟对应的微/宏任务的实现, 本质是为了利用 JavaScript 的这些异步回调任务队列来实现…

auto关键字的妙用

基本概念 C11中的auto关键字是C语言的一个重大改进&#xff0c;它提供了一种类型推导的机制&#xff0c;允许开发者让编译器自动推导变量的类型&#xff0c;从而简化代码并提高可读性。 常见使用场景 1、循环中迭代变量的类型推导 当处理容器或其他迭代器时&#xff0c;aut…

学习c语音的自我感受

因为是自学&#xff0c;所以走过不少弯路。去年&#xff0c;受知乎“python性能弱”风潮的影响&#xff0c;学过go,rust。 在学习这些新语言的时候&#xff0c;由衷感受到&#xff0c;或是本身侧重方向的原因&#xff08;如go侧重服务器&#xff09;&#xff0c;或是语言太新不…

uniapp——组件多颜色模块展示、气泡框

一、自定义颜色&#xff1a; 样式 代码 <template><view class"content"><!-- 右上角 --><view class"coverStatus" :class"[itemClass, positionClass,cornerClass,sanJiaoCss,sanJiaoCss2]":style"dynamicStyle&q…

python getsize如何使用

第一步&#xff0c;点击键盘 winr&#xff0c;打开运行窗口&#xff1b;在窗口中输入“cmd"&#xff0c;点击确定&#xff0c;打开windows命令行窗口。 第二步&#xff0c;在windows命令行窗口中&#xff0c;输入“python”&#xff0c;进入python交互窗口。 第三步&#…

【Linux】解决切换用户出现bash-4.2$问题

切换用户出现 bash 4.2 问题 出现 bash 4.2 错误 发现是用户指定家目录下 缺少2个隐藏文件 这题前提条件 我指定的家目录是 /opt/{孙悟空,猪八戒,唐僧,沙悟净} /etc/skel/.bashrc /etc/skel/.bash_profile 传过去后显示登录成功 问题展示&#xff1a; [rootlocalhost…

前端系列-2 模块化CommonJs+AMD+CMD+ES6

模块化 js中, 一个文件就是一个模块&#xff0c;模块化可以提高代码利用率而减少重复代码&#xff0c;将相同的逻辑维护在一个模块中&#xff0c;分而治之&#xff0c;提高代码的可维护性&#xff1b;另外&#xff0c;模块化的出现可以在工程中引入第三方模块&#xff0c;极大…

揭秘油烟净化器保持餐饮厨房清新通畅的秘诀

我最近分析了餐饮市场的油烟净化器等产品报告&#xff0c;解决了餐饮业厨房油腻的难题&#xff0c;更加方便了在餐饮业和商业场所有需求的小伙伴们。 在餐饮厨房中&#xff0c;油烟净化器的作用不可忽视。它不仅是清洁空气的工具&#xff0c;更是提升生活品质的保障。让我们一…

音频数据分析注意事项

注意事项一、音频读取 1.librosa.load(path, sr16000) 读取的结果是&#xff0c;数据类型是浮点型 2.df_yin wave.open(path, rb) params df_yin.getparams() nchannels, sampwidth, framerate, nframes params[:4] strData df_yin.readframes(nframes) data np.frombuf…

笔记 | 嵌入式系统概论

1 嵌入式系统简介 1.1 嵌入式系统的定义 根据美国电气与电子工程师学会&#xff08;IEEE&#xff1a;Institute of Electrical and Electronics Engineers )的定义&#xff0c;嵌入式系统是用于控制、监视或辅助操作机器和设备的装置(原文: devices used to control, monitor…

WiFi、Ethenet、4G优先级切换

1、多网卡情况下如何调整优先级方案 按照目前公司前辈给出的方案&#xff0c;调整优先级的手段有两种&#xff1a; <1>.删除默认路由--route del 的方法 <2>.ifmetric源码提供的修改路由表的mteric的值来设置路由的优先级&#xff0c;metric越小优先级越高。 应…

ANSYS Help 的使用

ANSYS 帮助文档是相当实用且重要的第一手资料&#xff0c;90% 以上的纯操作问题都可以在帮助文档找到相关的解释。 点击开始菜单的 ANSYS Help即可打开帮助文档 帮助文档有两种打开方式&#xff1a; 基于帮助文档的安装包安装于本地后&#xff0c;可直接启动帮助程序没有安装…

Spring-IOC之组件扫描

版本 Spring Framework 6.0.9​ 1. 前言 通过自动扫描&#xff0c;Spring 会自动从扫描指定的包及其子包下的所有类&#xff0c;并根据类上的特定注解将该类装配到容器中&#xff0c;而无需在 XML 配置文件或 Java 配置类中逐一声明每一个 Bean。 支持的注解 Spring 支持一系…