Java之ArrayList类(集合)

集合的由来

我们想存储多个数据,选择的容器可以是数组。而数组的长度是固定的,无法适应数据变化的需求。为了解决这个问题,Java提供了另一个容器 java.util.ArrayList 集合类,让我们可以更便捷的存储和操作对象数据。数组的长度不可以发生改变。但是ArrayList集合的长度是可以随意变化的。

ArrayList类概述

java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素。 ArrayList 中可不断添加元素,其大小也自动增长。对于ArrayList来说,有一个尖括号<E>代表泛型。泛型:也就是装在集合当中的所有元素,全都是统一的什么类型。注意:泛型只能是引用类型,不能是基本类型。

ArrayList使用步骤

查看类

  • java.util.ArrayList <E> :该类需要 import导入使后使用。<E> ,表示一种指定的数据类型,叫做泛型。 E ,取自Element(元素)的首字母。在出现 E 的地方,我们使用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。

查看构造方法

  • public ArrayList() :构造一个内容为空的集合。

基本格式:

 //创建一个泛型为String的ArrayList集合
ArrayList<String> arrayList = new ArrayList<String>();

在JDK 7后,右侧泛型的尖括号之内可以留空,但是<>仍然要写。

简化格式:

 //创建一个泛型为String的ArrayList集合
ArrayList<String> arrayList = new ArrayList<>();

查看常用的成员方法

  • public boolean add(E e) : 将指定的元素添加到此集合的尾部。参数 E e ,在构造ArrayList对象时, <E> 指定了什么数据类型,那么 add(E e) 方法中,只能添加什么数据类型的对象。对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。但是对于其他集合(今后学习)来说,add添加动作不一定成功。
  • public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。
  • public E remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素。
  • public int size():获取集合的尺寸长度,返回值是集合中包含的元素个数。

代码举例

package MyCode;

import java.util.ArrayList;

public class ArrayListMethod {
    public static void main(String[] args) {
        //创建集合对象
        ArrayList<String> list = new ArrayList<String>();
        //添加元素
        list.add("hello");
        list.add("world");
        list.add("I");
        list.add("love");
        list.add("java");
        //public E get(int index):返回指定索引处的元素
        System.out.println("get的元素:" + list.get(3));
        //public int size():返回集合中的元素的个数
        System.out.println("集合中元素的个数:" + list.size());
        //public E remove(int index):删除指定索引处的元素,返回被删除的元素
        System.out.println("删除的指定index元素:" + list.remove(0));
        //遍历输出
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

代码执行后的结果

如何存储基本数据类型

ArrayList对象不能存储基本类型,只能存储引用类型的数据。类似 <int> 不能写,但是存储基本数据类型对应的包装类型是可以的。所以,想要存储基本类型数据, <> 中的数据类型,必须转换后才能编写,转换写法如下:

tips:

我们发现,只有 Integer 和 Character 需要特殊记忆,其他基本类型只是首字母大写即可。

从JDK 1.5+开始,支持自动装箱、自动拆箱。

  • 自动装箱:基本类型 --> 包装类型
  • 自动拆箱:包装类型 --> 基本类型
package MyCode;
import java.util.ArrayList;

/*
如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。

 */
public class MyArrayListBasic {

    public static void main(String[] args) {
        ArrayList<String> listA = new ArrayList<>();
        // 错误写法!泛型只能是引用类型,不能是基本类型
//        ArrayList<int> listB = new ArrayList<>();
        //泛型:只能是包装类
        ArrayList<Integer> listC = new ArrayList<>();
        //自动装箱
        listC.add(100);
        listC.add(200);
        System.out.println(listC); // [100, 200]
        //自动拆箱
        int num = listC.get(1);
        System.out.println("第1号元素是:" + num);
    }

}

代码执行后的结果

ArrayList练习

用一个大集合存入1到1000之间的20个随机数字,,然后筛选其中的偶数元素,放到小集合当中。要求使用自定义的方法来实现筛选。

分析:

  1. 需要创建一个大集合,用来存储int数字:<Integer>
  2. 随机数字就用Random nextInt
  3. 循环20次,把随机数字放入大集合:for循环、add方法
  4. 定义一个方法,用来进行筛选。筛选:根据大集合,筛选符合要求的元素,得到小集合。方法三要素:返回值类型,方法名称,参数列表。
  5. 判断(if)是偶数:num % 2 == 0
  6. 如果是偶数,就放到小集合当中,否则不放。

代码实现

package demo05;

import java.util.ArrayList;
import java.util.Random;

public class MyArrayList {
    public static void main(String[] args) {
        // 创建Random 对象
        Random random = new Random();
        // 创建ArrayList 对象
        ArrayList<Integer> list = new ArrayList<>();
        // 添加随机数到集合
        for (int i = 0; i < 20; i++) {
            int r = random.nextInt(1000) + 1;
            list.add(r);
        }
        // 调用偶数集合的方法
        ArrayList<Integer> arrayList = getArrayList(list);
        System.out.println(arrayList);
    }

    public static ArrayList<Integer> getArrayList(ArrayList<Integer> list) {
        // 创建小集合,来保存偶数
        ArrayList<Integer> smallList = new ArrayList<>();
        // 遍历list
        for (int i = 0; i < list.size(); i++) {
            // 获取元素
            Integer num = list.get(i);
            // 判断为偶数,添加到小集合中
            if (num % 2 == 0) {
                smallList.add(num);
            }
        }
        // 返回小集合
        return smallList;
    }
}

代码执行后的结果

注意

java.util.ArrayList 集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为 查询数据、遍历数据,所以 ArrayList 是最常用的集合。 许多程序员开发时非常随意地使用ArrayList完成任何需求,并不严谨,这种用法是不提倡

原文地址:https://www.cnblogs.com/wurengen/p/11955474.html

时间: 2024-10-05 00:30:14

Java之ArrayList类(集合)的相关文章

Java常用工具类集合

数据库连接工具类 仅仅获得连接对象 ConnDB.java package com.util; import java.sql.Connection; import java.sql.DriverManager; /** * 数据库连接工具类——仅仅获得连接对象 * */ public class ConnDB { private static Connection conn = null; private static final String DRIVER_NAME = "com.mysql

Java中ArrayList类详解

1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 2.如何使用ArrayList 最简单的例子: ArrayList List = new ArrayList(); for( int i=0;i <10;i++ ) //给数组增加10个Int元素 List.Add(i); //..程序做一些处理 List.Remove

JDK1.8源码(五)——java.util.ArrayList 类

关于 JDK 的集合类的整体介绍可以看这张图,本篇博客我们不系统的介绍整个集合的构造,重点是介绍 ArrayList 类是如何实现的. 1.ArrayList 定义 ArrayList 是一个用数组实现的集合,支持随机访问,元素有序且可以重复. public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializabl

Java中 ArrayList类的使用

java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素.此类提供一些方法 来操作内部存储 的元素. ArrayList 中可不断添加元素,其大小也自动增长. ArrayList使用步骤 1.查看类 java.util.ArrayList <E> :该类需要 import导入使后使用. <E> ,表示一种指定的数据类型,叫做泛型,表示我们将存储哪种引用类型的元素. 代码如下: ArrayList<String> ArrayList<S

Java中 ArrayList类常用方法和遍历

 ArrayList类对于元素的操作,基本体现在——增.删.查.常用的方法有: public boolean add(E e) :将指定的元素添加到此集合的尾部. public E remove(int index) :移除此集合中指定位置上的元素.返回被删除的元素. public E get(int index) :返回此集合中指定位置上的元素.返回获取的元素. public int size() :返回此集合中的元素数.遍历集合时,可以控制索引范围,防止越界. contains(object

Java 之 ArrayList 类

一.ArrayList 概述 java.util.ArrayList  是 大小可变的数组 的实现,存储在内的数据称为元素.该类是一个 集合类(容器),可以让我们更便捷的存储和操作对象数据. 该类可以不断添加元素,其大小也自动增长,弥补了数组固定长度这一缺点. 二.ArrayList 使用步骤 1.查看类 java.util.ArrayList<E> : 该类需要 import 导入后使用 <E> 表示一种指定的数据类型,叫做泛型. E ,取自 Element(元素)的首字母,在出

java ArrayList类 集合

集合框架(集合的由来及集合继承体系图) * A:集合的由来 * 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少 * B:数组和集合的区别 * 区别1 : * 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值 * 集合只能存储引用数据类型(对象)集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象

(转)Java中ArrayList类详解

1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 2.如何使用ArrayList 最简单的例子: ArrayList List = new ArrayList(); for( int i=0;i <10;i++ ) //给数组增加10个Int元素 List.Add(i); //..程序做一些处理 List.Remove

Java中ArrayList类的用法

1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 2.如何使用ArrayList 最简单的例子: ArrayList List = new ArrayList(); for( int i=0;i <10;i++ ) //给数组增加10个Int元素 List.Add(i); //..程序做一些处理 List.Remove