好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Java ArrayList集合详解(Java动态数组)

一、ArrayList集合的概述和基本使用

1.概述

ArrayList是集合的一种实现,Collection是所有集合类的父类。

由于数组在运行期间的长度无法改变,所以有了ArrayList集合。

2.基本使用

创建ArrayList集合

?

1

2

3

import java.util.ArrayList; //不要忘记导包

//<E>代表泛型,E可以定义为所有的引用类型,例如String、类等

ArrayList<E> list = new ArrayList<>();

将其它类型的集合转为ArrayList

?

1

ArrayList<String> setList = new ArrayList<>( new HashSet())

常用的方法

(1)添加数据 - add()

?

1

2

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

list.add( "csdn" );

(2)获取数据 - get()

?

1

list.get(i); //i为集合的元素索引

(3)删除数据 - remove()

?

1

list.remove(i); //i为集合的元素索引

(4)获取集合长度 - size()

?

1

2

int l = list.size();

System.out.println( "集合的长度是:" +l);

二、ArrayList集合的详细介绍

1.定义一个ArrayList集合

(1)语法格式

?

1

ArrayList<E> list = new ArrayList<>();

(2)解读

<E>代表泛型,代表集合里装的类型

泛型只能是引用类型,不能是基本类型

对于ArrayList集合,直接打印的结果并不是地址值,而是内容,如果是空则打印 []

从jdk1.7开始右侧尖括号内部可以不写内容

2.ArrayList集合常用的方法

定义集合

定义一个泛型为String的ArrayList集合

?

1

2

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

System.out.println(list); //打印结果为:[]

添加元素

public boolean add(E e):向集合中添加元素,类型与泛型一致

?

1

2

3

4

5

6

//只能添加字符串类型,其他类型会报错

list.add( "CSDN" );

list.add( "aaaa" );

list.add( "bbbb" );

System.out.println(list);

//打印集合结果为:[CSDN, aaaa, bbbb]

通过ArrayList类的可以看出add方法有一个布尔类型的返回值,可以用于返回添加数据是否成功。

?

1

2

boolean res = list.add( "ssss" );

System.out.println( "添加是否成功" +res);

对于ArrayList集合来说,使用add方法一定会添加成功(其它集合不一定),所以可以不使用add方法的返回值。

获取元素

public E get(int index):从集合中获取元素,参数index代表元素索引编号。

?

1

2

3

4

//获取集合的第 1 个元素

String strAdd = list.get( 0 );

System.out.println(Str); //结果为:CSDN

//根据添加顺序,第 0 号元素应为 [CSDN]

get方法有一个与集合定义时对应的泛型的返回值,接收数据时应注意数据类型。

删除元素

public E remove(int index):从集合中删除元素,参数index代表元素索引编号。

?

1

2

3

//删除集合的第 3 个元素

String strRemove = list.remove( 2 );

System.out.println( "被删除的是:" + str);

remove方法有一个与集合定义时对应的泛型的返回值,在执行删除操作后可以将数据接收,查看被删除的数据。

获取集合长度

public int size():获取集合长度

?

1

2

int l = list.size();

System.out.println( "集合的长度是:" +l);

3.将"类"存入ArrayList集合

(1)首先定义一个Student的标准类

?

1

2

3

4

5

6

7

8

9

10

public class Student {

     private String name;

     private int age;

     public Person() {}

     public Person(String name, int age) { this .name = name; this .age = age;}

     public String getName() { return name;}

     public void setName(String name) { this .name = name;}

     public int getAge() { return age;}

     public void setAge( int age) { this .age = age;}

}

(2)创建集合存入"类"

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

import java.util.ArrayList;

public class Test {

     public static void main(String[] args) {

         //创建集合

         ArrayList<Studentn> list = new ArrayList<>();

         //创建要存储的对象

         Student s1 = new Student( "张三" , 17 );

         Student s2 = new Student( "李四" , 18 );

         //将对象信息存入集合

         list.add(s1);

         list.add(s2);

         //使用匿名对象的方式存入也可以,因为这个对象只会被使用一次

         list.add( new Student( "王五" , 19 ));

         //直接打印集合,会显示为对象的内存地址值

         System.out.println(list);

         //因此要想取出数据,必须再次创建对象接收数据

         Student p11 = list.get( 0 );

         System.out.println( "姓名:" +p11.getName()+ ",年龄:" +p11.getAge());

     }

4.遍历ArrayList集合

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

import java.util.ArrayList;

/*

遍历ArrayList集合

  */

public class ArrayListEach {

     public static void main(String[] args) {

      //创建集合对象

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

         //添加数据

         list.add( "aaaa" );

         list.add( "bbbb" );

         list.add( "cccc" );

   //遍历集合

         for ( int i = 0 ; i < list.size(); i++) {

             System.out.println(list.get(i));

         }

     }   

}

5.将基本数据类型存入ArrayList集合

如果希望向ArrayList集合里放基本数据类型,必须使用基本类型对应的包装类。

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

基本类型 包装类(引用类型,包装类都位于java.lang包下)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

【tips】

除了int和char的包装类不是首字母大写外,其它六种基本类型的包装类均是首字母大写。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

import java.util.ArrayList;

public class ArrayListBasic {

     public static void main(String[] args) {

         //从jdk1.5开始可以自动装箱,自动拆箱

         //基本类型 --> 包装类型   装箱

         //包装类型 --> 基本类型   拆箱

         ArrayList<Integer> list = new ArrayList<>();

         list.add( 100 );

         list.add( 200 );

         list.add( 300 );

         //取出数据

         int num = list.get( 1 );

         System.out.println( "取出的数据为:" +num); //结果为:取出的数据为:200

     }

}

6.ArrayList作为方法的参数

案例分析:

1.ArrayList作为参数

2.使用"{ }[作为开结尾,使用]、"分隔每个元素

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

import java.util.ArrayList;

public class ArrayListParam {

     public static void main(String[] args) {

      //创建集合

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

         list.add( "aaa" );

         list.add( "bbb" );

         list.add( "ccc" );

         list.add( "ddd" );

         //System.out.println(list);

         //调用方法;并将创建的集合作为参数,传递给方法

         printArrayList(list);

     }

    

  //编写打印数组的方法,并将ArrayList集合设置为方法的参数

     public static void printArrayList(ArrayList list){

         System.out.print( "{" );

         for ( int i = 0 ; i < list.size(); i++) {

             if (i == list.size()- 1 ){

                 System.out.print(list.get(i));

                 System.out.print( "}" );

             } else {

                 System.out.print(list.get(i)+ "、" );

             }

         }

     }

}

7.ArrayList作为方法的返回值

案例分析:

1.使用ArrayList集合作为方法的返回值

2.使用大集合存放20个数字,并筛选偶数放入小集合

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

import java.util.ArrayList;

import java.util.Random;

public class ArrayListReturn {

     public static void main(String[] args) {   

         ArrayList<Integer> list = returnArrayList();

         System.out.println(list);

     }

    

  //定义需求方法,并将返回值类型设置为ArrayList集合

     public static ArrayList<Integer> returnArrayList(){

         Random r = new Random();

         //定义大集合

         ArrayList<Integer> listBig = new ArrayList<>();

         //定义小集合

         ArrayList<Integer> listSmall = new ArrayList<>();

        

         for ( int i = 0 ; i < 20 ; i++) {

             int num = r.nextInt( 10 );

             //向集合中添加数据

             listBig.add(num);

             //判断添加的数据是否为偶数,如果是,则将数据存入小集合

             if (listBig.get(i)% 2 == 0 ){

                 listSmall.add(listBig.get(i));

             }

         }

         System.out.println( "偶数一共有:" +listSmall.size()+ "个" );

         //返回值为小集合

         return listSmall;

     }

}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

原文链接:https://blog.csdn.net/weixin_44580492/article/details/105995822

查看更多关于Java ArrayList集合详解(Java动态数组)的详细内容...

  阅读:16次