Java ArrayList

Java 集�框架 Java 集�框架

ArrayList 类是一个�以动�修改的数组,与普通数组的区别就是它是没有固定大�的�制,我们�以添加或删除元素。

ArrayList 继承了 AbstractList ,并实现了 List 接�。

ArrayList 类�于 java.util 包中,使用�需�引入它,语法格�如下:

import java.util.ArrayList; // 引入 ArrayList 类

ArrayList<E> objectName =new ArrayList<>();  // �始化
  • E: 泛型数æ�®ç±»åž‹ï¼Œç”¨äºŽè®¾ç½® objectName 的数æ�®ç±»åž‹ï¼Œå�ªèƒ½ä¸ºå¼•用数æ�®ç±»åž‹ã€‚
  • objectName: 对象å��。

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

添加元素

ArrayList 类�供了很多有用的方法,添加元素到 ArrayList �以使用 add() 方法:

实例

import java.util.ArrayList;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        System.out.println(sites);
    }
}

以上实例,执行输出结果为:

[Google, Runoob, Taobao, Weibo]

访问元素

访问 ArrayList 中的元素�以使用 get() 方法:

实例

import java.util.ArrayList;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        System.out.println(sites.get(1));  // 访问第二个元素
    }
}

注�:数组的索引值从 0 开始。

以上实例,执行输出结果为:

Runoob

修改元素

如果�修改 ArrayList 中的元素�以使用 set() 方法:

实例

import java.util.ArrayList;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        sites.set(2, "Wiki"); // 第一个å�‚数为索引ä½�置,第二个为è¦�修改的值
        System.out.println(sites);
    }
}

以上实例,执行输出结果为:

[Google, Runoob, Wiki, Weibo]

删除元素

如果�删除 ArrayList 中的元素�以使用 remove() 方法:

实例

import java.util.ArrayList;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        sites.remove(3); // 删除第四个元素
        System.out.println(sites);
    }
}

以上实例,执行输出结果为:

[Google, Runoob, Taobao]

计算大�

如果�计算 ArrayList 中的元素数��以使用 size() 方法:

实例

import java.util.ArrayList;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        System.out.println(sites.size());
    }
}

以上实例,执行输出结果为:

4

迭代数组列表

我们�以使用 for �迭代数组列表中的元素:

实例

import java.util.ArrayList;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        for (int i = 0; i < sites.size(); i++) {
            System.out.println(sites.get(i));
        }
    }
}

以上实例,执行输出结果为:

Google
Runoob
Taobao
Weibo

也�以使用 for-each �迭代元素:

实例

import java.util.ArrayList;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        for (String i : sites) {
            System.out.println(i);
        }
    }
}

以上实例,执行输出结果为:

Google
Runoob
Taobao
Weibo

其他的引用类型

ArrayList 中的元素实际上是对象,在以上实例中,数组列表元素都是字符串 String 类型。

如果我们�存储其他类型,而 <E> �能为引用数�类型,这时我们就需�使用到基本类型的包装类。

基本类型对应的包装类表如下:

基本类型引用类型
booleanBoolean
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter

此外,BigInteger�BigDecimal 用于高精度的�算,BigInteger 支�任�精度的整数,也是引用类型,但它们没有相对应的基本类型。

ArrayList<Integer> li=new Arraylist<>();     // 存放整数元素
ArrayList<Character> li=new Arraylist<>();   // 存放字符元素

以下实例使用 ArrayList 存储数字(使用 Integer 类型):

实例

import java.util.ArrayList;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<Integer> myNumbers = new ArrayList<Integer>();
        myNumbers.add(10);
        myNumbers.add(15);
        myNumbers.add(20);
        myNumbers.add(25);
        for (int i : myNumbers) {
            System.out.println(i);
        }
    }
}

以上实例,执行输出结果为:

10
15
20
25

ArrayList 排�

Collections 类也是一个�常有用的类,�于 java.util 包中,�供的 sort() 方法�以对字符或数字列表进行排�。

以下实例对字�进行排�:

实例

import java.util.ArrayList;
import java.util.Collections;  // 引入 Collections ç±»

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Taobao");
        sites.add("Wiki");
        sites.add("Runoob");
        sites.add("Weibo");
        sites.add("Google");
        Collections.sort(sites);  // å­—æ¯�排åº�
        for (String i : sites) {
            System.out.println(i);
        }
    }
}

以上实例,执行输出结果为:

Google
Runoob
Taobao
Weibo
Wiki

以下实例对数字进行排�:

实例

import java.util.ArrayList;
import java.util.Collections;  // 引入 Collections ç±»

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<Integer> myNumbers = new ArrayList<Integer>();
        myNumbers.add(33);
        myNumbers.add(15);
        myNumbers.add(20);
        myNumbers.add(34);
        myNumbers.add(8);
        myNumbers.add(12);

        Collections.sort(myNumbers);  // 数字排åº�

        for (int i : myNumbers) {
            System.out.println(i);
        }
    }
}

以上实例,执行输出结果为:

8
12
15
20
33
34

Java ArrayList 方法

Java ArrayList 常用方法列表如下:

方法 �述
add() 将元素�入到指定�置的 arraylist 中
addAll() 添加集�中的所有元素到 arraylist 中
clear() 删除 arraylist 中的所有元素
clone() �制一份 arraylist
contains() 判断元素是�在 arraylist
get() 通过索引值获� arraylist 中的元素
indexOf() 返回 arraylist 中元素的索引值
removeAll() 删除存在于指定集�中的 arraylist 里的所有元素
remove() 删除 arraylist 里的�个元素
size() 返回 arraylist 里元素数�
isEmpty() 判断 arraylist 是�为空
subList() 截�部分 arraylist 的元素
set() 替� arraylist 中指定索引的元素
sort() 对 arraylist 元素进行排�
toArray() 将 arraylist 转�为数组
toString() 将 arraylist 转�为字符串
ensureCapacity() 设置指定容�大�的 arraylist
lastIndexOf() 返回指定元素在 arraylist 中最�一次出现的�置
retainAll() �留 arraylist 中在指定集�中也存在的那些元素
containsAll() 查看 arraylist 是�包�指定集�中的所有元素
trimToSize() 将 arraylist 中的容�调整为数组中的元素个数
removeRange() 删除 arraylist 中指定索引之间存在的元素
replaceAll() 将给定的�作内容替�掉数组中�一个元素
removeIf() 删除所有满足特定�件的 arraylist 元素
forEach() �历 arraylist 中�一个元素并执行特定�作

更多 API 方法�以查看:https://www.runoob.com/manual/jdk11api/java.base/java/util/ArrayList.html

Java 集�框架 Java 集�框架