ArrayList与String[]
不逼自己一把,你永远不知道什么是绝望。
今天被初学java的朋友问到了String[]跟ArrayList是不是有关系呢?
猜测是名称之间的联想,记此篇解惑。
Array英语单词里是数组、阵列的意思,在java中数组是这样定义的:一组相关类型的变量集合。
格式:数据类型[] 数组名称 = new 数据类型[长度];
根据上边的格式,列举几个常见的数组,比如:String[] int[],如下是数组一些特点:
- 数组长度是固定的,无法实现动态扩容;
- 数组下标(从0开始)超出数组长度,数组越界异常(运行时异常);
- 数组中每个元素都有默认值,默认值是该数据类型默认值;
- 数组名称.length(属性):取得数组长度;
看完了上边的数组特点,再来看看ArrayList吧,他又是个啥呢?
ArrayList就是动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了动态的增加和减少元素,实现了ICollection和IList接口,灵活的设置数组的大小等好处 --- 百度百科
所以,看到这,已经明确String[]跟ArrayList是有点关系的了……
ArrayList是一个数组队列,相当于动态数组,与Java中的数组不同,数组一旦创建,长度固定,但是ArrayList的长度是动态的,不受限制,可以存储任意多的对象,但是只能存储对象,不能存储原生数据类型例如int(基本数据类型)。
如下是ArrayList的关系图:

- 继承于AbstractList,实现了List,提供了相关的添加、删除、修改、遍历等功能。
- 实现了RandmoAccess接口,即提供了随机访问的功能。RandmoAccess是java中用来被List实现,为List提供快速访问功能的。在ArrayList中,我们即可以通过元素的序号快速获取元素对象;这就是快速随机访问。
- 实现了Cloneable接口,即覆盖了函数clone(),能被克隆。
- 实现了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.length | list.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

ArrayList与String[]的更多相关文章
- C#中ArrayList和string,string[]数组的转换
转载原地址: http://www.cnblogs.com/nextsoft/articles/2218689.html 1.ArrarList 转换为 string[] : ArrayList li ...
- 自己写的demo。List<HashMap<String,Object>>=new ArrayList<HashMap<String,Object>>
package com.pb.collection; import java.util.ArrayList; import java.util.HashMap; import java.util.It ...
- 将ArrayList<HashMap<String, String>>转为ArrayList<Bundle>类型的解决方案
Bundle是一种利用键值对存储的数据格式,而我们在程序中通常利用HashMap存储数据.在开发中,通过Http请求得到JSONArray类型的返回值,我选择利用ArrayList<HashMa ...
- Java ArrayList、string、string[]之间的转换
1.ArrarList 转换为 string[] : ArrayList list = new ArrayList(); list.Add("aaa"); list.Add(&qu ...
- ArrayList<HashMap<String,Object>>集锦
1. Android中如何从一个Activity中ArrayList<HashMap<String,Object>>传递到另一个activity? eg: ...
- API(Scanner、Random、ArrayList、String、Arrays、Math)
Scanner import java.util.Scanner; /* public int nextInt(): to get a integer from keyboard public Str ...
- ArrayList集合、String[]数组、String字符串
数组初始化时候必须指定长度,而ArrayList是动态数组,可以根据实际内容改变 //声明stsArr数组并初始化 String[] strArr = new String[]{ "aaa& ...
- C#中ArrayList 、Array与、string、string[]数组的相关转换
一.ArrayList 与 string.string[]数组的转换 1.ArrayList 转换为 string[] : ArrayList list = new ArrayList(); list ...
- String、String[]、ArrayList<String>之间的转换
1. ArrayList<String> 转换为 String[]: ArrayList<String> list = new ArrayList<>(); li ...
随机推荐
- 下载工具系列——Aria2 (几乎全能的下载神器)
一.介绍 说完了前面一堆BT/PT客户端,现在终于轮到Aria2了,关于这个我就不介绍太多了,自从百度限速以来我觉得这个快变成众所周知的了,我平时也收集了各种和Aria2相关的插件或者是辅助软件之类的 ...
- 在Visual Studio中新增生成项目
在Visual Studio中新增生成项目 选择适配器类型 选择WCF-SQL适配器 创建连接选项 选择相应的存储过程 生成相应的消息架构
- SpringBoot第四篇:整合JDBCTemplate
作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/10868954.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言 前面几篇文 ...
- HUSKY CLOCK1.0上线啦!
有人需要HUSKY CLOCK1.0下载资源的请联系1335415335@qq.com! 感谢支持,您的认可是我们前进的动力!
- Sitecore A / B测试
测试您的Web内容非常重要.这是查看页面中的页面和组件是否达到预期效果的好方法.测试还可以让您放心,您的内容足够吸引人,以增加转化次数并最大限度地提高增长率. 测试如何运作? 测试通过向访问者随机显示 ...
- springboot xss防护
概述 XSS(Cross Site Script)全称跨站脚本攻击,为了跟CSS区分开来,所以变成了XSS.它允许恶意代码植入到正常的页面中,盗取正常用户的账号密码,诱使用户访问恶意的网站. 攻击 实 ...
- Mvc中模拟模型
如题,每次研究前台技术都要建数据库.连接,还遇到VS各种版本问题,太麻烦. 写这么一个东西,模仿后台Model,上课的时候研究代码层面的内容.甚好. 数据库类: class myDatabase { ...
- .Net IOC框架入门之——Unity
一.概述 IOC:英文全称:Inversion of Control,中文名称:控制反转,它还有个名字叫依赖注入(Dependency Injection). 作用:将各层的对象以松耦合的方式组织在一 ...
- WPF布局介绍(1)
开局一张图,内容全靠...,本系列的文章, 主要针对刚入门.亦或是从 winform/bs转过来的开发人员快速入门的指南, 相对于其它一些文章中会详细的从项目如何建立到其实现的原理及组成部分, 本系列 ...
- css1.0~3.0背景图使用多张折叠的概念与方法
需求:使用多张图片作为页面的背景图: 首先需要了解background的属性以及细节知识:https://www.cnblogs.com/chenglj/p/7372996.html backgrou ...