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

今天被初学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.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[]的更多相关文章

  1. C#中ArrayList和string,string[]数组的转换

    转载原地址: http://www.cnblogs.com/nextsoft/articles/2218689.html 1.ArrarList 转换为 string[] : ArrayList li ...

  2. 自己写的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 ...

  3. 将ArrayList<HashMap<String, String>>转为ArrayList<Bundle>类型的解决方案

    Bundle是一种利用键值对存储的数据格式,而我们在程序中通常利用HashMap存储数据.在开发中,通过Http请求得到JSONArray类型的返回值,我选择利用ArrayList<HashMa ...

  4. Java ArrayList、string、string[]之间的转换

    1.ArrarList 转换为 string[] : ArrayList list = new ArrayList(); list.Add("aaa"); list.Add(&qu ...

  5. ArrayList<HashMap<String,Object>>集锦

    1.   Android中如何从一个Activity中ArrayList<HashMap<String,Object>>传递到另一个activity?      eg:     ...

  6. API(Scanner、Random、ArrayList、String、Arrays、Math)

    Scanner import java.util.Scanner; /* public int nextInt(): to get a integer from keyboard public Str ...

  7. ArrayList集合、String[]数组、String字符串

    数组初始化时候必须指定长度,而ArrayList是动态数组,可以根据实际内容改变 //声明stsArr数组并初始化 String[] strArr = new String[]{ "aaa& ...

  8. C#中ArrayList 、Array与、string、string[]数组的相关转换

    一.ArrayList 与 string.string[]数组的转换 1.ArrayList 转换为 string[] : ArrayList list = new ArrayList(); list ...

  9. String、String[]、ArrayList<String>之间的转换

    1. ArrayList<String> 转换为 String[]: ArrayList<String>  list = new ArrayList<>(); li ...

随机推荐

  1. android 自定义gridview(导航)

    最近又重新做回安卓,做了个小项目.下绝心使用android studio,通过这一回实战,终于用上了.综合了前人的经验,搞了个自己满意的导航界面,用的是gridview. 代码: package co ...

  2. js原型和原型链,以及__proto__、prototype属性

    __proto__和prototype属性: 1.__proto__属性: 在JS里,万物皆对象(函数是对象.原型也是对象...).对象都具有属性__proto__,这个属性会指向该对象的原型. 2. ...

  3. golang web 方案

    概要 开发 web 框架 数据库 认证 日志 配置 静态文件服务 上传/下载 发布 docker 打包 部署中遇到的问题 时区问题 概要 轻量的基于 golang 的 web 开发实践. golang ...

  4. google 镜像

    google 镜像 http://scholar.hedasudi.com/ http://ac.scmor.com/

  5. 为某金融企业开发团队分享DevOps Server流水线使用经验

    http://www.cnblogs.com/danzhang/  DevOps MVP 张洪君

  6. 了解jsp,这一篇就够了.

    jsp的执行过程: 1 客户端发出请求. 2 Web容器将JSP转译成Servlet源代码. 3 Web容器将产生的源代码进行编译. 4 Web容器加载编译后的代码并执行. 5 把执行结果响应至客户端 ...

  7. WPF DataGrid 自定义样式 MVVM 删除 查询

    看到很多小伙伴在找Dategrid样式 就分享一个 ,有不好的地方 请指出 代码部分都加了注释  需要的可以自己修改为自己需要的样式 源码已经上传 地址:  https://github.com/YC ...

  8. Django的学习——全局的static和templates的使用

    一.问题 首先我们在进行Django框架搭建的时候我们需要建立一个全局的变量,一是为了实现代码的复用,二是为了方便管理,如下图的样式 二.解决 1.修改setting里面的配置文件①templates ...

  9. AtCoder diverta 2019 Programming Contest 2

    AtCoder diverta 2019 Programming Contest 2 看起来我也不知道是一个啥比赛. 然后就写写题解QWQ. A - Ball Distribution 有\(n\)个 ...

  10. C# 用Singleton类构建多线程单例模式

    public sealed class Singleton    {        private static volatile Singleton uniqueInstance;        p ...