前段时间一直在说数组,今天说下Java集合中常用的ArrayList

ArrayList类是一个可以动态修改的数组,与普通数组的区别就是ArrayList没有固定大小的限制,可以添加或删除元素。ArrayList继承了AbstractList,并实现了List接口

Java--->集合中常用的ArrayList的使用和介绍_数组

可以看到 ArrayList继承于AbstractList类,实现了List接口。List又继承于Collection, Collection继承于Iterable

ArrayList类位于 java.util包中,使用前需要引入。在idea中写了ArrayList可以自动引入包。可以看下ArrayList的初始化

ArrayList<E> objectName = new ArrayList<>(); //初始化 

其中 E: 泛型数据类型,用于设置 objectName的数据类型,只能为引用数据类型。objectName为 对象名

ArrayList是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。


ArrayList的一系列操作:

  1. 添加元素
    添加元素时,使用add方法 可以直接添加内容,xxx.add("xxxxxx"); 也可以设置数组下标和内容 xxx.add(index,"xxxx"); index一般是int
    我们来看下实例:

import java.util.ArrayList;


public class ArrayListTestDemo {

    public static void main(String[] args){

        //ArrayList添加元素,先初始化

        ArrayList<String> arrayList = new ArrayList<String>();

        arrayList.add("Google");

        arrayList.add(0,"is"); //数字下标


        System.out.println(arrayList);


    }

}

运行结果如下:

[is, Google]  

这里需要说明下,程序代码一般都是从上到下执行,先显示 Google,然后显示is, 但是is的下标为0, 也就是数组的第一位。所以结果为 is Google

import java.util.ArrayList;


public class ArrayListTestDemo {

    public static void main(String[] args){

        //ArrayList添加元素,先初始化

        ArrayList<String> arrayList = new ArrayList<String>();

        arrayList.add("Google");

        arrayList.add(0,"is"); //数字下标

        arrayList.add(0,"Hello"); //先运行的 is,然后运行 hello发现 index是0,就排在is 前面

        System.out.println(arrayList);


    }

}

如果在添加数据时,有两个数组的下标值是一样的,怎么处理呢?我们看下运行结果

[Hello, is, Google]

说明后执行的且数组下标一样的先运行并显示了出来。

如果数组下标值超过了数组长度,会有什么结果呢?

import java.util.ArrayList;


public class ArrayListTestDemo {

    public static void main(String[] args){

        //ArrayList添加元素,先初始化

        ArrayList<String> arrayList = new ArrayList<String>();

        arrayList.add("Google");

        arrayList.add(0,"is"); //数字下标

        arrayList.add(0,"Hello"); //先运行的 is,然后运行 hello发现 index是0,就排在is 前面

        arrayList.add(100,"worlld"); //index不能超过ArrayList的长度

        System.out.println(arrayList);


    }

}

100 > 3了,我们看下运行结果:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 100, Size: 3

at java.util.ArrayList.rangeCheckForAdd(ArrayList.java:665)

at java.util.ArrayList.add(ArrayList.java:477)

at WorkStudy.ArrayListTestDemo.main(ArrayListTestDemo.java:12)

可以看到提示超了

需要数据内容正确的话,可以这样看

import java.util.ArrayList;


public class ArrayListTestDemo {

    public static void main(String[] args){

        //ArrayList添加元素,先初始化

        ArrayList<String> arrayList = new ArrayList<String>();

        arrayList.add("Google");

        arrayList.add(0,"is"); //数字下标

        arrayList.add(0,"Hello"); //先运行的 is,然后运行 hello发现 index是0,就排在is 前面

        arrayList.add(3,"worlld"); //index不能超过ArrayList的长度

        System.out.println(arrayList);

我们看下运行结果:

[Hello, is, Google, worlld]


可以看到在打印这块,ArrayList和普通的数组还是不一样的。普通的数组直接打印,会显示字符,请看实例:

String[] arg = new String[5];

        for (int i = 0; i < arg.length; i++) {

            arg[i] = "Hello" + i;

        }

        System.out.println(arg);


运行结果如下:

[Ljava.lang.String;@61bbe9ba

需要使用循环来将数组内的元素都取出


2.访问元素

访问 ArrayList中的元素可以使用get()方法,还是用上面的实例

ArrayList<String> arrayList = new ArrayList<String>();

        arrayList.add("Google");

        arrayList.add(0,"is"); //数字下标

        arrayList.add(0,"Hello"); //先运行的 is,然后运行 hello发现 index是0,就排在is 前面

        arrayList.add(3,"worlld"); //index不能超过ArrayList的长度

        System.out.println(arrayList);


        String arg1 = arrayList.get(0); //访问第一个元素

        System.out.println(arg1);

我们来看下结果:

Hello

显示的是第一个元素(数组下标0)


好的,今天就先到这里吧

add()

add(int index, string)

get()