类ArrayList

什么是ArrayList类

java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储

的元素。 ArrayList 中可不断添加元素,其大小也自动增长。

ArrayList使用步骤

查看类

java.util.ArrayList<E> :该类需要 import导入使后使用。

  • <E>,表示一种指定的数据类型,叫做泛型。 E ,取自Element(元素)的首字母。在出现 E 的地方,我们使用一种引用数据类型将其替换即可。

查看构造方法

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

查看成员方法

  • public boolean add(E e) :将指定的元素添加到此集合的尾部。
  • public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。
  • public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。
  • public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。

注意事项:

  • 在JDK 7后,右侧泛型的尖括号之内可以留空,但是<>仍然要写。
  • 泛型是统一的类型,只能是引用类型,不能是基本类型。创建集合的时候,确定泛型。例如:参数 E e ,在构造ArrayList对象时, 指定了什么数据类型,那么 add(E e) 方法中,只能添加什么数据类型的对象。
  • 对于ArrayList来说,直接打印变量名称,得到的不是内存地址值,而是内容。如果内容为空,得到的是[ ]。

代码举例:

package demo04;

import java.util.ArrayList;

public class Demo01ArrayList {
    public static void main(String[] args) {
        // 创建一个集合对象,指定泛型为String
        ArrayList<String> arrayList = new ArrayList<>();
        //直接打印集合对象变量名称,得到的是[]
        System.out.println(arrayList);//[]
        //添加元素
        arrayList.add("张三");
        arrayList.add("李四");
        arrayList.add("王五");
        System.out.println(arrayList);// [张三, 李四, 王五]
        //public E get(int index):返回指定索引处的元素
        String s1 = arrayList.get(1);
        System.out.println(s1);//李四
        //public int size():返回集合中的元素的个数
        int size = arrayList.size();
        System.out.println(size);//3
        //public E remove(int index):删除指定索引处的元素,返回被删除的元素
        String remove = arrayList.remove(0);
        System.out.println(remove);//张三
        //遍历数组
        for (int i = 0; i < arrayList.size(); i++) {
            System.out.print(arrayList.get(i));// 李四 王五
        }

    }
}

如何存储基本数据类型

ArrayList对象不能存储基本类型,只能存储引用类型的数据。但是可以存储基本数据类型对应的 包装类型是可以的。所以,想要存储基本类型数据, 泛型必须是基本数据类型对应的包装类型。

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

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

需求:

生成6个1~33之间的随机整数,添加到集合,并遍历

package demo04;

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

public class Demo02ArrayList {
    public static void main(String[] args) {
        // 创建一个集合对象,指定泛型为Integer
        ArrayList<Integer> arrayList = new ArrayList<>();
        //创建Random 对象
        Random random = new Random();
        for (int i = 0; i < 6; i++) {
            // 添加随机数到集合
            int number = random.nextInt(33) + 1;
            arrayList.add(number);
        }
        //遍历ArrayList
        for (int i = 0; i < arrayList.size(); i++) {
            System.out.print(arrayList.get(i) + " ");
        }

    }
}

执行结果:

需求:

自定义3个学生对象,添加到集合,并遍历

定义学生类

package demo05;

public class Student {
    // 成员变量
    private String name;
    private int age;

    //构造方法
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Student() {
    }

    //get,set方法
    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;
    }
}

定义集合

package demo05;

import java.util.ArrayList;
public class StudentArrayList {
    public static void main(String[] args) {
        // 创建一个集合对象,指定泛型为Student
        ArrayList<Student> arrayList = new ArrayList<>();
        // 添加对象
        arrayList.add(new Student("张三", 18));
        arrayList.add(new Student("李四", 19));
        arrayList.add(new Student("王五", 20));
        //遍历集合
        for (int x = 0; x < arrayList.size(); x++) {
            Student s = arrayList.get(x);
            System.out.println(s.getName() + "‐‐‐" + s.getAge());
        }

    }
}

执行结果

ArrayList类型作为返回值,和方法的返回值 传递的都是内存地址值

代码举例:

定义获取所有偶数元素集合的方法(ArrayList类型作为返回值)

package demo05;

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

public class ArrayListTest {
    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;
    }
}

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

时间: 2024-10-09 21:06:28

类ArrayList的相关文章

java学习笔记--类ArrayList和LinkedList的实现

在集合Collection下的List中有两个实现使用的很频繁,一个是ArrayList,另一个是LinkedList,在学习中肯定都会有这样的疑问:什么时候适合使用ArrayList,什么时候用LinkedList?这时,我们就需要了解ArrayList和LinkedList的底层的实现,下面,为了更好的了解它们具体是怎样实现的,我们来写自己的ArrayList 和LinkedList. ArrayList底层是基于数组实现的,数组在内存中是存储在连续的存储单元中,在数据查找的时候比较快,适用

JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList

一List接口概述 List接口是Collection接口的子接口,实现List接口的集合类中的元素是有顺序的,而且可以重复,被称为序列. List集合中的元素都对应一个整数型的序列容器中的序号记载其在容器中的位置,可以根据序号存取容器中的元 素.List接口可以精确的控制每个元素的插入位置,或者删除某个位置元素. Java所提供的List集合实现类类有ArrayList实现类.LinkedList实现类.Vector等,我们主要使用的是ArrayList实 现类和LinkedList实现类.

java的List接口的实现类 ArrayList,LinkedList,Vector 的区别

Java的List接口有3个实现类,分别是ArrayList.LinkedList.Vector,他们用于存放多个元素,维护元素的次序,而且允许元素重复. 3个具体实现类的区别如下: 1. ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问.数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要将已经有数组的数据复制到新的存储空间中.当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制.移动.代价比较高.因此,它

一天一个类--ArrayList之二

继续我的小激动--- 1.看看构造一个ArrayList 有两种方式 一个指定大小,一个不指定.我们知道他其实使用数组来实现了,数组肯定要有大小,那么他没指定大小,默认的是多少呢???追踪源码---开启万里追踪模式--- /** * Constructs an empty list with an initial capacity of ten. */ public ArrayList() { this(10); } 知道了,就是10--. 2.还有一个通过现有的集合类来实现构造.怎么实现的啊?

一天一个类--ArrayList之一

今天开始打算将JDK7种的一些类的源码分析一下,笔者认为了解源码就是了解其实现过程,这是非常重要的,而不是简单的记住方法的使用,关键是了解其思想和目的这才是重要的.所以笔者决定首先将从一些容器下手.[好欺负^_^] 位于顶层的是Collection,这个是一个接口,就是“祖宗”啊- 具体介绍可以参见API 常见的方法: boolean add(E e) Ensures that this collection contains the specified element (optional op

Random类&amp;ArrayList集合学习

基础题目 第一题:需求实现 随机验证码. 随机生成十组六位字符组成的验证码. 验证码由大小写字母.数字字符组成. 代码实现,效果如图所示: 开发提示: 使用字符数组保存原始字符,利用Random类生成随机索引. 参考答案: public class Test1 { public static void main(String[] args) { for (int i = 0; i < 10; i++) { String s = verifyCode(); System.out.println(&qu

类ArrayList(集合)

ArrayList类简介 java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素.此类提供一些方法来操作内部存储的元素. ArrayList 中可不断添加元素,其大小也自动增长.ArrayList对象不能存储基本类型,只能存储引用类型的数据. ArrayList使用步骤 查看类 java.util.ArrayList<E> :该类需要 import导入使后使用. <E>,表示一种指定的数据类型,叫做泛型. E ,取自Element(元素)的首字母.在

list 接口与实现类arraylist 区别

ArrayList list = new ArrayList(); List<String> list = new ArrayList<String>(); 第一种形式用当前类作为引用类型,那么可以访问到ArrayList这个类中的所有公用方法.第二种形式,用ArrayList实现的接口List作为引用类型,那么通过list引用可以访问到接口中定义的方法.也就是说ArrayList这个类实现了List接口,除了要必须实现接口List中声明的方法外,还可以实现额外的一些方法.但是,第

C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、SortedList类)

1.ArrayList类 ArrayList类主要用于对一个数组中的元素进行各种处理.在ArrayList中主要使用Add.Remove.RemoveAt.Insert四个方法对栈进行操作.Add方法用于将对象添加到 ArrayList 的结尾处:Remove方法用于从 ArrayList 中移除特定对象的第一个匹配项:RemoveAt方法用于移除 ArrayList 的指定索引处的元素:Insert方法用于将元素插入 ArrayList 的指定索引处. 示例 ArrayList的使用 示例将介