Java ArrayList用法详解

  • Post author:
  • Post category:java


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

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

//引入ArrayList类
import java.util.ArrayList;
//初始化ArrayList
ArrayList<E> objectName = new ArrayList<>();

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

1:ArrayList的基本操作

ArrayList类提供了很多有用的方法,添加元素到ArrayList可以使用add()方法,访问元素可以使用get()方法,修改元素使用set()方法,删除元素使用remove()方法,计算元素数量可以使用size()方法。示例如下:

//导入包
import java.util.ArrayList;
//排序
import java.util.Collections;

public class Test{

    public static void main(String[] args){

        //初始化
        ArrayList<String> sites = new ArrayList<String>();
        //添加元素
        sites.add("red");
        sites.add("blue");
        sites.add("yellow");
        sites.add("black");
        //输出所有元素
        System.out.println("-------------输出所有元素-------------");
        System.out.println(sites);
        
        //访问第二个元素
        System.out.println("--------------访问第二个元素-----------");
        System.out.println(sites.get(1));
        
        //修改元素
        sites.set(2,"pink");//第一个参数为索引位置,第二个参数为要修改的值
        System.out.println("---------------把第三个元素修改为pink-----");
        System.out.println(sites);

        //删除元素
        sites.remove(1);//删除第二个元素
        System.out.println("-------------删除第二个元素-----------");
        System..out.println(sites);

        //计算ArrayList中元素数量
        System.out.println("-------------现在元素数量为------------");
        System.out.println(sites);
        

    }
}

ArrayList中的元素实际上是对象,在以上实例中,数组列表元素都是字符串String类型。如果我们要存储其他类型,而<E>只能为引用数据类型,这是我们就需要使用到基本类型的包装类。比如:

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

ArrayList排序

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

import java.util.ArrayList;
import java.util.Collections;

public class Test{

    public static void main(String[] args){

        //初始化
        ArrayList<Integer> myNumbers = new ArrayList<Integer>();
        //添加元素
        myNumbers.add(10);
        myNumbers.add(45);
        myNumbers.add(20);
        myNumbers.add(68);

        System.out.println("-------------存储数字,使用integer类型---------");
        //遍历输出 
        for(int i : myNumbers){
            System.out.println(i);
        }

        //排序
        System.out.println("-------------对myNumbers进行排序---------------");
        Collections.sort(myNumbers);
        //输出排序后的元素
        for(int i : myNumbers){
            System.out.println(i);
        }

    }
}

ArrayList遍历

常用的有三种遍历方法:

import java.util.*;

public class Test{
    public static void main(String[] args){

        List<String>  list = new ArrayList<String>();
        list.add("red");
        list.add("green");
        list.add("yellow");

        //1:for-each遍历
        System.out.println("-------------1:使用for-each遍历-----------");
        for(String str:list){
            System.out.println(str);
        }

        //2:把链表变为数组相关的内容进行遍历
        System.out.println("--------------2:转换为数组相关遍历----------");
        String[] strArray = new String[list.size()];
        list.toArray(strArray);
        for(int i=0;i<strArray.length;i++){
            System.out.println(strArray[i]);
        }

        //3:使用迭代器遍历
        System.out.println("------------3:使用迭代器进行相关遍历---------");
        Iterator<String> ite = list.iterator();
        while(ite.hasNext()){
            System.out.println(ite.next());
        }
    }
}



版权声明:本文为li_w_ch原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。