【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));
        }
    }
相关文章
|
2天前
|
Java 索引 容器
Java ArrayList扩容的原理
Java 的 `ArrayList` 是基于数组实现的动态集合。初始时,`ArrayList` 底层创建一个空数组 `elementData`,并设置 `size` 为 0。当首次添加元素时,会调用 `grow` 方法将数组扩容至默认容量 10。之后每次添加元素时,如果当前数组已满,则会再次调用 `grow` 方法进行扩容。扩容规则为:首次扩容至 10,后续扩容至原数组长度的 1.5 倍或根据实际需求扩容。例如,当需要一次性添加 100 个元素时,会直接扩容至 110 而不是 15。
Java ArrayList扩容的原理
|
3月前
|
存储 算法 Java
Arraylist 在 Java 中能容纳多少个元素?
【8月更文挑战第23天】
97 0
|
3月前
|
Java
|
3月前
|
存储 Java
|
6天前
|
存储 Java 索引
Java中的数据结构:ArrayList和LinkedList的比较
【10月更文挑战第28天】在Java编程世界中,数据结构是构建复杂程序的基石。本文将深入探讨两种常用的数据结构:ArrayList和LinkedList,通过直观的比喻和实例分析,揭示它们各自的优势与局限,帮助你在面对不同的编程挑战时做出明智的选择。
|
27天前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
61 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
17天前
|
安全 Java 程序员
Java集合之战:ArrayList vs LinkedList,谁才是你的最佳选择?
本文介绍了 Java 中常用的两个集合类 ArrayList 和 LinkedList,分析了它们的底层实现、特点及适用场景。ArrayList 基于数组,适合频繁查询;LinkedList 基于链表,适合频繁增删。文章还讨论了如何实现线程安全,推荐使用 CopyOnWriteArrayList 来提升性能。希望帮助读者选择合适的数据结构,写出更高效的代码。
43 3
|
2月前
|
Java
java基础(12)抽象类以及抽象方法abstract以及ArrayList对象使用
本文介绍了Java中抽象类和抽象方法的使用,以及ArrayList的基本操作,包括添加、获取、删除元素和判断列表是否为空。
26 2
java基础(12)抽象类以及抽象方法abstract以及ArrayList对象使用
|
2月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
1月前
|
算法 Java 测试技术
数据结构 —— Java自定义代码实现顺序表,包含测试用例以及ArrayList的使用以及相关算法题
文章详细介绍了如何用Java自定义实现一个顺序表类,包括插入、删除、获取数据元素、求数据个数等功能,并对顺序表进行了测试,最后还提及了Java中自带的顺序表实现类ArrayList。
18 0