【JAVA基础】ArrayList

简介: 1.集合概述2.ArrayList集合快速入门3.ArrayList对于泛型的支持4.ArrayList常用API、遍历

1.集合概述



集合是与数组类似,也是一种容器,用于装数据的。


数组的特点:

数组定义完成并启动后,类型确定、长度固定。


问题:在个数不能确定,且要进行增删数据操作的时候,数组是不太合适的。

集合的特点:

集合的大小不固定,启动后可以动态变化,类型也可以选择不固定。


集合非常适合做元素个数不确定,且要进行增删操作的业务场景。


集合还提供了许多丰富、好用的功能,而数组的功能很单一。

2.ArrayList集合快速入门


ArrayList集合


 ArrayList是集合中的一种,它支持索引。 (暂时先学习这个,后期会学习整个集合体系)


ArrayList集合的对象获取


构造器 说明


public ArrayList() 创建一个空的集合对象


ArrayList集合添加元素的方法


方法名 说明


public boolean add(E e) 将指定的元素追加到此集合的末尾


public void add(int index,E element) 在此集合中的指定位置插入指定的元

    public static void main(String[] args) {
        ArrayList list= new ArrayList();
        list.add("热爱");
        list.add("编程");
        list.add("小白");
        System.out.println(list);
    }

使用  public void add(int index,E element):

    public static void main(String[] args) {
        ArrayList list= new ArrayList();
        list.add("热爱");
        list.add("编程");
        list.add("小白");
        list.add(2,"的");
        System.out.println(list);
    }


3.ArrayList对于泛型的支持


泛型概述


ArrayList:其实就是一个泛型类,可以在编译阶段约束集合对象只能操作某种数据类型。


举例:


ArrayList :此集合只能操作字符串类型的元素。


ArrayList:此集合只能操作整数类型的元素。


注意:集合中只能存储引用类型,不支持基本数据类型。


4.ArrayList常用API、遍历


ArrayList集合常用方法


方法名称 说明


public E get(int index) 返回指定索引处的元素


public int size() 返回集合中的元素的个数


public E remove(int index) 删除指定索引处的元素,返回被删除的元素


public boolean remove(Object o) 删除指定的元素,返回删除是否成功


public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素

    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("java");
        list.add("python");
        list.add("云原生");
        list.add("人工智能");
        list.add("java");
        list.add("前端");
        list.add("java");
        System.out.println("------------查看的集合-----------");
        System.out.println(list);
        System.out.println("------------返回指定索引处的元素------------");
        System.out.println(list.get(0));
        System.out.println("------------返回集合中的元素的个数-----------");
        System.out.println(list.size());
        System.out.println("------删除指定索引处的元素,返回被删除的元素----");
        System.out.println(list.remove(6));
        System.out.println(list);
        System.out.println("------删除指定的元素,返回删除是否成功----");
        System.out.println(list.remove("java"));
        System.out.println(list);
        System.out.println("------------修改指定索引处的元素,返回被修改的元素-----------");
        System.out.println(list.set(0, "html"));
        System.out.println(list);
    }

遍历:

    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("java");
        list.add("python");
        list.add("云原生");
        list.add("人工智能");
        list.add("java");
        list.add("前端");
        list.add("java");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
相关文章
|
4月前
|
人工智能 安全 JavaScript
Java ArrayList:动态数组
本文探讨Java中的数组,对比C/C++、JS/PHP/Python等语言的数组特性。文章分析了Java数组的定义、创建方式及其规范,指出其优缺点。Java数组作为引用类型,在堆上分配内存,支持动态大小,避免了C/C++中裸数组的常见问题(如越界访问)。然而,Java数组也存在性能瓶颈和设计缺陷,例如运行时的安全检查影响速度,无法创建超大数组或泛型数组,且多线程场景下缺乏同步机制。作者建议在实际开发中用集合替代数组以规避这些问题。
114 1
|
2月前
|
Java 索引
Java ArrayList中的常见删除操作及方法详解。
通过这些方法,Java `ArrayList` 提供了灵活而强大的操作来处理元素的移除,这些方法能够满足不同场景下的需求。
368 30
|
存储 算法 Java
Arraylist 在 Java 中能容纳多少个元素?
【8月更文挑战第23天】
353 0
|
Java
如何在 Java 中将 Arraylist 添加到数组?
【8月更文挑战第23天】
271 0
|
存储 Java
|
10月前
|
Java 索引 容器
Java ArrayList扩容的原理
Java 的 `ArrayList` 是基于数组实现的动态集合。初始时,`ArrayList` 底层创建一个空数组 `elementData`,并设置 `size` 为 0。当首次添加元素时,会调用 `grow` 方法将数组扩容至默认容量 10。之后每次添加元素时,如果当前数组已满,则会再次调用 `grow` 方法进行扩容。扩容规则为:首次扩容至 10,后续扩容至原数组长度的 1.5 倍或根据实际需求扩容。例如,当需要一次性添加 100 个元素时,会直接扩容至 110 而不是 15。
354 4
Java ArrayList扩容的原理
|
11月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
295 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
10月前
|
存储 Java 索引
Java中的数据结构:ArrayList和LinkedList的比较
【10月更文挑战第28天】在Java编程世界中,数据结构是构建复杂程序的基石。本文将深入探讨两种常用的数据结构:ArrayList和LinkedList,通过直观的比喻和实例分析,揭示它们各自的优势与局限,帮助你在面对不同的编程挑战时做出明智的选择。
|
Java
java基础(12)抽象类以及抽象方法abstract以及ArrayList对象使用
本文介绍了Java中抽象类和抽象方法的使用,以及ArrayList的基本操作,包括添加、获取、删除元素和判断列表是否为空。
125 2
java基础(12)抽象类以及抽象方法abstract以及ArrayList对象使用
|
11月前
|
安全 Java 程序员
Java集合之战:ArrayList vs LinkedList,谁才是你的最佳选择?
本文介绍了 Java 中常用的两个集合类 ArrayList 和 LinkedList,分析了它们的底层实现、特点及适用场景。ArrayList 基于数组,适合频繁查询;LinkedList 基于链表,适合频繁增删。文章还讨论了如何实现线程安全,推荐使用 CopyOnWriteArrayList 来提升性能。希望帮助读者选择合适的数据结构,写出更高效的代码。
557 3