ArrayList与String[]

不逼自己一把,你永远不知道什么是绝望。

今天被初学java的朋友问到了String[]ArrayList是不是有关系呢?

猜测是名称之间的联想,记此篇解惑。

Array英语单词里是数组、阵列的意思,在java中数组是这样定义的:一组相关类型的变量集合。

格式:数据类型[] 数组名称 = new 数据类型[长度];

根据上边的格式,列举几个常见的数组,比如:String[] int[],如下是数组一些特点:

  1. 数组长度是固定的,无法实现动态扩容;
  2. 数组下标(从0开始)超出数组长度,数组越界异常(运行时异常);
  3. 数组中每个元素都有默认值,默认值是该数据类型默认值;
  4. 数组名称.length(属性):取得数组长度;

看完了上边的数组特点,再来看看ArrayList吧,他又是个啥呢?

ArrayList就是动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了动态的增加和减少元素,实现了ICollection和IList接口,灵活的设置数组的大小等好处 --- 百度百科

所以,看到这,已经明确String[]ArrayList是有点关系的了……

ArrayList是一个数组队列,相当于动态数组,与Java中的数组不同,数组一旦创建,长度固定,但是ArrayList的长度是动态的,不受限制,可以存储任意多的对象,但是只能存储对象,不能存储原生数据类型例如int(基本数据类型)。

如下是ArrayList的关系图:


  1. 继承于AbstractList,实现了List,提供了相关的添加、删除、修改、遍历等功能。
  2. 实现了RandmoAccess接口,即提供了随机访问的功能。RandmoAccessjava中用来被List实现,为List提供快速访问功能的。在ArrayList中,我们即可以通过元素的序号快速获取元素对象;这就是快速随机访问。
  3. 实现了Cloneable接口,即覆盖了函数clone(),能被克隆。
  4. 实现了java.io.Serializable接口,这意味着ArrayList支持序列化,能通过序列化去传输。

总之,ArrayList是非常重要的一个类,在代码中被广泛使用。

点个题,看一下数组与ArrayList的比较:

操作Array(String[])ArrayList
创建String[] array = new String[10];ArrayList list = new ArrayList<>();
访问一个元素array[index]list.get(index);
更新一个元素array[index] = "niceyoo";list.set(index, "niceyoo");
返回大小array.lengthlist.size();
排序java.util.Arrays.sort(array)java.util.Collections.sort(arraylist)
添加一个新元素相当复杂list.add("niceyoo");
插入一个新元素相当复杂list.add(index, "niceyoo");
删除一个元素相当复杂list.remove(index);
删除一个元素相当复杂list.remove(Object);
删除所有元素稍微复杂list.clear();

我创建了一个用来记录自己学习之路的公众号,感兴趣的小伙伴可以关注一下微信公众号:niceyoo

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

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

相关文章

工作302:scss目录编写

css 样式存放目录&#xff08;待定&#xff0c;选用less或scss&#xff09;这里我不会把style抽到外头&#xff0c;但是可以写一些全局样式放在这里&#xff0c;里面注意放入common.less normalize.less,里面直接写.el-button那么所有的el-button就会被影响&#xff0c;这里要提…

工作303:接口返回的上传地址默认是可以调用的

let testUrlgetActionXing("/internal/pictures/uploader",).then(res>{console.log(res)testUrlres.data.toString()接口上传的返回地址console.log(testUrl)testUrltestUrl.substring(24)console.log(testUrl)getActionXing(testUrl).then(res>{console.log(…

WebStorm取消默认style样式折叠

WebStorm取消默认style样式折叠&#xff1a; File--->Settings打开一个窗口 Edit--->CodeFolding 把HTML style attribute的前面的钩去掉[取消勾选] 右下角点击Apply--->ok

AtCoder Grand Contest 023 C - Painting Machines

Description 一个长度为 \(n\) 的序列,初始都为 \(0\),你需要求出一个长度为 \(n-1\) 的排列 \(P\), 按照 \(1\) 到 \(n\) 的顺序,每次把 \(P_i\) 和 \(P_i1\) 染成 \(1\),一个排列的价值为所有的位置都变成 \(1\) 的操作次数,求所有排列的价值和题面 Solution 我们求出价值为 …

Vue中的computed属性

1、前言 本篇是Vue中最常用到的API之一computed属性&#xff0c;转载信息如下&#xff1a; 作者&#xff1a;gunelark链接&#xff1a;https://www.cnblogs.com/gunelark/p/8492468.html 2、正文 看了网上很多资料&#xff0c;对vue的computed讲解自己看的都不是很清晰&#xf…

工作304:uni返回上一页面

activated(){this.cheange(0) },用于刷新uni页面的操作 返回上一个页面

订单管理系统(含源码)

本文demo下载和教学视频地址&#xff1a;http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId1077 实例使用PhpMySqlhtmlcss技术实现了订单管理系统, 系统可以分为多个角色进行登录操作, 每个角色分别对应相应的功能, 实例中介绍了一个强大的工具phpStudy&a…

工作305:对选择的数值清空

<template><div><!--选择账号 选择账号的具体页面 选择添加账号--><el-button icon"el-icon-plus" size"medium" click"open" :disabled"viewMode">添加账号</el-button><!--title表示标题 close表示…

openstack placement 组件作用理解

例如&#xff0c;一个资源提供者可以是一个计算节点&#xff0c;共享存储池&#xff0c;或一个IP分配池。placement服务跟踪每个供应商的库存和使用情况。例如&#xff0c;在一个计算节点创建一个实例的可消费资源如计算节点的资源提供者的CPU和内存&#xff0c;磁盘从外部共享…

Spring和SpringMVC总结篇

作者&#xff1a;肥宅兜链接&#xff1a;https://www.cnblogs.com/doudouxiaoye/p/5693399.html 1.为什么使用Spring ? 方便解耦&#xff0c;简化开发;通过Spring提供的IoC容器&#xff0c;可以将对象之间的依赖关系交由Spring进行控制&#xff0c;避免硬编码所造成的过度程序…

Python3爬虫(十一) 爬虫与反爬虫

Infi-chu: http://www.cnblogs.com/Infi-chu/ 一、重要概念 二、爬虫反爬虫进化论 转载于:https://www.cnblogs.com/Infi-chu/p/8981537.html

Io 异常: Invalid number format for port number

报错信息&#xff1a; Caused by: java.sql.SQLException: Io 异常: Invalid number format for port number at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.ja…

工作308:控制change

<div class"container" style"text-align: left;margin-top: 20px;margin-left: 10%" ><!--双向绑定数据checkedData 加入多选框的样式绑定的是checkData的数据 本次位置是一个数组 当其中选择的数值发生变化的时候 会触发对应的方法 --><e…

配置Maven环境变量-Eclipse/Idea添加Maven

1. 文件下载 官网下载地址&#xff1a;http://maven.apache.org/download.cgi 下方有我提供的下载链接。 由于下载缓慢&#xff0c;提供一份我的下载链接&#xff1a;https://www.lanzous.com/i7v2ryb 2. 解压文件 3. 环境变量 3.1、新建环境变量&#xff0c;如下所示&#xff…

HTML第二课——css

请关注公众号&#xff1a;自动化测试实战 先给大家提个建议&#xff0c;就是用sublime编辑器来编写。用其他的也无所谓&#xff0c;我只是建议&#xff0c;因为这个会帮你自动补全很多代码。 css概念 css叫层叠样式表。意思就是一层一层的叠加。作用就是让页面中的可视化标签变…

工作309:selectaccount方法接收值

<template><div><!--选择账号 选择账号的具体页面 选择添加账号--><el-button icon"el-icon-plus" size"medium" click"open" :disabled"viewMode">添加账号</el-button><!--title表示标题 close表示…

Invalid connection string format, a valid format is: host:port:sid

报错信息&#xff1a; Caused by: java.sql.SQLException: Io 异常: Invalid connection string format, a valid format is: "host:port:sid" at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.Databa…

Java代码优化

为什么要Java代码优化&#xff1f; 代码优化的最重要的作用应该是&#xff1a;避免未知的错误。在代码上线运行的过程中&#xff0c;往往会出现很多我们意想不到的错误&#xff0c;因为线上环境和开发环境是非常不同的&#xff0c;错误定位到最后往往是一个非常小的原因。因此&…

工作306:.sync解决子组件改变自身值 父组件也改变自身数值

Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-

修改MyEclipse/Eclipse左侧文字大小(MacOS/Windows)

一、Windows 首先找到 Eclipse/MyEclipse 的安装目录&#xff0c;然后找到如下目录&#xff1a; \plugins\org.eclipse.ui.themes_1.1.200.v20160815-0536\css\e4_basestyle.css 修改此 css 文件&#xff0c;添加如下内容&#xff1a; CTabFolder Tree{ font-size: 12px;} 二…