1.概述

ArrayList是集合的一种实现,Collection是所有集合类的父类。
由于数组在运行期间的长度无法改变,所以有了ArrayList集合。

2.基本使用

创建ArrayList集合

import java.util.ArrayList;//不要忘记导包 //<E>代表泛型,E可以定义为所有的引用类型,例如String、类等 ArrayList<E> list = new ArrayList<>(); 

将其它类型的集合转为ArrayList

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

常用的方法
(1)添加数据 - add()

ArrayList<String> list = new ArrayList<>(); list.add("csdn"); 

(2)获取数据 - get()

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

(3)删除数据 - remove()

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

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

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

1.定义一个ArrayList集合

(1)语法格式

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

(2)解读

  • <E>代表泛型,代表集合里装的类型
  • 泛型只能是引用类型,不能是基本类型
  • 对于ArrayList集合,直接打印的结果并不是地址值,而是内容,如果是空则打印 []
  • 从jdk1.7开始右侧尖括号内部可以不写内容

2.ArrayList集合常用的方法

定义集合

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

ArrayList<String> list = new ArrayList<>(); System.out.println(list);//打印结果为:[] 

添加元素

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

//只能添加字符串类型,其他类型会报错 list.add("CSDN"); list.add("aaaa"); list.add("bbbb"); System.out.println(list); //打印集合结果为:[CSDN, aaaa, bbbb] 

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

boolean res = list.add("ssss"); System.out.println("添加是否成功"+res); 

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

获取元素

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

//获取集合的第 1 个元素 String strAdd = list.get(0); System.out.println(Str);//结果为:CSDN //根据添加顺序,第 0 号元素应为 “CSDN” 

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

删除元素

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

//删除集合的第 3 个元素 String strRemove = list.remove(2); System.out.println("被删除的是:" + str); 

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

获取集合长度

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

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

3.将"类"存入ArrayList集合

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

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)创建集合存入"类"

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集合

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的包装类不是首字母大写外,其它六种基本类型的包装类均是首字母大写。

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.使用"{ }“作为开结尾,使用”、"分隔每个元素

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个数字,并筛选偶数放入小集合

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;     } } 

热门文章

原生实现C#和Lua相互调用-Unity3D可用

引言     本篇简单介绍如何在C#中执行Lua脚本,传递数据到Lua中使用,以及Lua中调用C#导出的方法等。在Unity中开发测试,并打IL2CPP的And

深圳市领养宠物中心地址(深圳市领养宠物中心地址电话)

摘要: 本篇文章给大家谈谈深圳市领养宠物中心地址,以及深圳市领养宠物中心地址电话对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录一览:1、深圳最大的宠物寄养中心在哪...

3月26日更新22.4M/S,2025年最新高速V2ray/Shadowrocket/Clash/SSR订阅链接免费节点地址分享

这一次的节点更新覆盖了欧洲、美国、日本、香港、加拿大、新加坡、韩国等地区,最高速度可达22.4 M/S。只需复制下方的Clash/v2ray订阅链接,在客户端添加后即可正常使用。

4月3日更新22.1M/S,2025年最新高速V2ray/Clash/Shadowrocket/SSR订阅链接免费节点地址分享

这一次的节点更新覆盖了香港、韩国、新加坡、美国、欧洲、日本、加拿大等地区,最高速度可达22.1 M/S。只需复制下方的Clash/v2ray订阅链接,在客户端添加后即可正常使用。

4月1日更新18.2M/S,2025年最新高速V2ray/Clash/SSR/Shadowrocket订阅链接免费节点地址分享

这一次的节点更新覆盖了美国、日本、加拿大、欧洲、香港、新加坡、韩国等地区,最高速度可达18.2 M/S。只需复制下方的Clash/v2ray订阅链接,在客户端添加后即可正常使用。

长沙领养宠物猫在哪里领(长沙领养宠物猫在哪里领养)

摘要: 今天给各位分享长沙领养宠物猫在哪里领的知识,其中也会对长沙领养宠物猫在哪里领养进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览:1、在哪里可以领.

Java中的append方法是什么?

java.lang.StringBuffer的append(char c)方法将char参数的字符串表示形式附加到此序列。参数将附加到此序列的内容中。该序列的长度增加1。 示例 import 

宠爱国际动物医院电话(宠爱国际动物诊疗中心)

摘要: 本篇文章给大家谈谈宠爱国际动物医院电话,以及宠爱国际动物诊疗中心对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录一览:1、石家庄的宠物医院哪一家比较好?...

动物疫控中心可以打疫苗吗多少钱(动物防疫中心可以打疫苗吗)

摘要: 今天给各位分享动物疫控中心可以打疫苗吗多少钱的知识,其中也会对动物防疫中心可以打疫苗吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览:1、给狗.

3月8日更新20M/S,2025年最新高速V2ray/SSR/Shadowrocket/Clash订阅链接免费节点地址分享

这一次的节点更新覆盖了加拿大、香港、美国、新加坡、韩国、日本、欧洲等地区,最高速度可达20 M/S。只需复制下方的Clash/v2ray订阅链接,在客户端添加后即可正常使用。

归纳