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

目录
  • 一、ArrayList集合的概述和基本使用
    • 1.概述
    • 2.基本使用
  • 二、ArrayList集合的详细介绍
    • 1.定义一个ArrayList集合
    • 2.ArrayList集合常用的方法
    • 3.将"类"存入ArrayList集合
    • 4.遍历ArrayList集合
    • 5.将基本数据类型存入ArrayList集合
    • 6.ArrayList作为方法的参数
    • 7.ArrayList作为方法的返回值

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

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

二、ArrayList集合的详细介绍

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

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

(0)

相关推荐

  • Java中将List拆分为多个小list集合的实现代码

    前言:在平常写代码时候可能会遇到需要将一个大list拆分多个小list,进行一些业务处理. 一.如何将List拆分为多个小list 如何将List拆分多个小list,首先我们需要list.sublist这个方法如何使用. list.sublist(int fromIndex, int toIndex)方法有两个参数. fromIndex:为起始索引(包含) toIndex:为终止索引(不包含)的子列表(List) 但值得注意的是,返回的这个子列表的幕后其实还是原列表:也就是说,修改这个子列表,将

  • Java中List集合的常用方法详解

    目录 1.void add(int index, E element) 2.boolean addAll(int index, Collection<? extends E> c) 3.E get(int index) 4.int indexOf(Object o) 5.ListIterator<E> listIterator() 6.ListIterator<E> listIterator(int index) 7.E remove(int index) 8.E se

  • Java List接口的集合使用详解

    目录 ArrayList集合 LinkedList类 LinkedList与ArrayList的区别: 总结 List接口继承collection接口,此接口可以对列表中的每个元素精确的控制,可以根据元素的索引来获取列表中的值,下面介绍常用的几种,ArrayList,LinkedList. ArrayList集合 ArrayList是一个动态修改的数组,它没有固定的大小,不需要自己分配空间,java本身已经初始化容量为10的大小,可以直接添加删除等一系列操作. ArrayList构造方法: Ar

  • Java中List集合去除重复数据的方法汇总

    List集合概述 List集合是一个元素有序(每个元素都有对应的顺序索引,第一个元素索引为0).且可重复的集合. List集合常用方法 List是Collection接口的子接口,拥有Collection所有方法外,还有一些对索引操作的方法. void add(int index, E element);:将元素element插入到List集合的index处: boolean addAll(int index, Collection<? extends E> c);:将集合c所有的元素都插入到

  • Java关于List集合去重方案详细介绍

    1 常规去重 碰到List去重的问题,除了遍历去重,我们常常想到利用Set集合不允许重复元素的特点,通过List和Set互转,来去掉重复元素. // 遍历后判断赋给另一个List集合,保持原来顺序 public static void ridRepeat1(List<String> list) { System.out.println("list = [" + list + "]"); List<String> listNew = new A

  • Java 集合框架之List 的使用(附小游戏练习)

    目录 1. List 1.1 List 的常见方法 1.2 代码示例 2. ArrayList 2.1 介绍 2.2 ArrayList 的构造方法 2.3 ArrayList 底层数组的大小 3. LinkedList 3.1 介绍 3.2 LinkedList 的构造方法 4. 练习题 5. 扑克牌小游戏 1. List 1.1 List 的常见方法 1.2 代码示例 注意: 下面的示例都是一份代码分开拿出来的,上下其实是有逻辑关系的 示例一: 用 List 构造一个元素为整形的顺序表 Li

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

    目录 一.ArrayList集合的概述和基本使用 1.概述 2.基本使用 二.ArrayList集合的详细介绍 1.定义一个ArrayList集合 2.ArrayList集合常用的方法 3.将"类"存入ArrayList集合 4.遍历ArrayList集合 5.将基本数据类型存入ArrayList集合 6.ArrayList作为方法的参数 7.ArrayList作为方法的返回值 一.ArrayList集合的概述和基本使用 1.概述 ArrayList是集合的一种实现,Collectio

  • Java Map集合详解与演示

    目录 一.前言 二.Map介绍 三.Map的基本功能 Map功能演示: 四. Map集合的获取功能 Map遍历演示: 一.前言 map集合是我们常使用的集合,了解和使用map集合是必要的 二.Map介绍 基本形式: public interface Map<K,V> Map是一个接口,我们不能直接创建对象,可以通过多态的形式创建对象,Map中有两个 参数,一个是K表示键,一个是V表示值,且一个键有且对应一个值,Map中不能包含重复的 键,若是有重复的键添加,则会以最后一次的键为准,而其他的键会

  • 详解go 动态数组 二维动态数组

    go使用动态数组还有点麻烦,比python麻烦一点,需要先定义. 动态数组申明 var dynaArr []string 动态数组添加成员 dynaArr = append(dynaArr, "one") ```go # 结构体数组 ```go package main import ( "fmt" ) type A struct{ Path string Length int } func main() { var dynaArr []A t := A{"

  • Java instanceof用法详解及实例代码

    Java instanceof用法详解 Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法: result = object instanceof class 参数: Result:布尔类型. Object:必选项.任意对象表达式. Class:必选项.任意已定义的对象类. 说明: 如果 object 是 class 的一个实例,则 instanceof 运

  • Java集合删除元素ArrayList实例详解

    Java集合删除元素ArrayList实例详解 AbstractCollection集合类中有一个remove方法,该方法为了适配多种不同的集合,允许删除空的元素,看这部分代码的时候产生了疑问,为什么这里直接用it.remove()就直接删除了? public boolean remove(Object o) { Iterator<E> it = iterator(); if (o==null) { while (it.hasNext()) { if (it.next()==null) { i

  • 详解Java中ArrayList类

    ArratList 类:存放同一数据类型容器(只能为引用数据类型,因实际其内部存放的是地址) 1.导入其所在包 import java.util.ArratList 2.创建对象 ArrayList<E> 对象名=new ArrayList<>(); E:泛型数据类型,指定对象名中存放指定类型的数据,不可省略,需为引用数据类型 3.使用 即对象名.方法(参数可能有可能无) 注意:当打印对象名时,非地址,而是一个如同python中列表一般,存放的是各个数据[元素1,元素2],若无数据

  • 详解java各种集合的线程安全

    线程安全 首先要明白线程的工作原理,jvm有一个main memory,而每个线程有自己的working memory,一个线程对一个variable进行操作时,都要在自己的working memory里面建立一个copy,操作完之后再写入main memory.多个线程同时操作同一个variable,就可能会出现不可预知的结果.根据上面的解释,很容易想出相应的scenario. 而用synchronized的关键是建立一个monitor,这个monitor可以是要修改的variable也可以其

  • 详解java JDK 动态代理类分析(java.lang.reflect.Proxy)

    详解java JDK 动态代理类分析(java.lang.reflect.Proxy) /** * JDK 动态代理类分析(java.lang.reflect.Proxy使用) * * @author 张明学 * */ public class ProxyStudy { @SuppressWarnings("unchecked") public static void main(String[] args) throws Exception { // 动态代理类:通用指定类加载器,和接

  • 基于Java中的数值和集合详解

    数组array和集合的区别: (1) 数值是大小固定的,同一数组只能存放一样的数据. (2) java集合可以存放不固定的一组数据 (3) 若程序事不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用 数组转换为集合: Arrays.asList(数组) 示例: int[] arr = {1,3,4,6,6}; Arrays.asList(arr); for(int i=0;i<arr.length;i++){ System.out.println(arr[

  • 详解Java ArrayList类

    ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素. ArrayList 继承了 AbstractList ,并实现了 List 接口. ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下: import java.util.ArrayList; // 引入 ArrayList 类 ArrayList<E> objectName =new ArrayList<>(); // 初始化 E

随机推荐