@[toc]
## 一、什么是ArrarList
ArrayList是Java中的一个动态数组类,可以根据实际需要自动调整数组的大小。ArrayList是基于数组实现的,它内部维护的是一个Object数组,默认初始化容量为10,当添加的元素个数超过了当前容量时,会自动扩容。

ArrayList也被广泛用于Java中的集合框架,例如Java中的List和Vector都是基于ArrayList实现的。下面是ArrayList常见的方法及其使用方法。

使用场景:
ArrayList适用于需要动态添加、删除元素的场景,可以用于存储不确定数量的数据。ArrayList也可以用于需要频繁访问集合元素的场景,因为它的底层是基于数组实现的,可以通过索引值快速访问元素。

另外,由于ArrayList是基于数组实现的,因此在数据量较大时,会占用较多的内存空间,因此需要考虑内存的使用。对于频繁进行插入、删除操作的场景,可以使用LinkedList来代替ArrayList。

总之,ArrayList更适合于需要频繁访问、添加、删除元素的场景,而LinkedList则更适合于需要频繁进行插入和删除操作的场景。

## 二、常见方法
| 返回类型 |方法 |描述 |
|--|--|--|
| boolean | add(E o) | 将指定元素追加到此列表的结尾。|
| void | add(int index, E element) | 将指定的元素插入此列表中的指定位置。 |
| boolean | addAll(Collection<? extends E> c) | 按照指定 Collection 的迭代器所返回的元素顺序,将该 Collection 中的所有元素追加到此列表的尾部。 |
| boolean |addAll(int index, Collection<? extends E> c) | 从指定的位置开始,将指定 Collection 中的所有元素插入到此列表中。 |
| void | clear() | 从此列表中移除所有元素。 |
| void | ensureCapacity(int minCapacity) | 如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。 |
| E | get(int index) | 返回此列表中指定位置上的元素。 |
| int| indexOf(Object elem) | 搜索指定参数第一次出现的位置,使用 equals 方法进行相等性测试。 |
| boolean | isEmpty()| 测试此列表中是否没有元素。 |
| int | lastIndexOf(Object elem) | 返回指定的对象在列表中最后一次出现的位置索引。 |
| E | remove(int index) | 移除此列表中指定位置处的元素。 |
| boolean | remove(Object o) | 从此列表中移除指定元素的单个实例(如果存在),此操作是可选的。 |
| protected void | removeRange(int fromIndex, int toIndex) | 移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。 |
| E | set(int index, E element) | 用指定的元素替代此列表中指定位置上的元素。 |
| int | size() | 返回此列表的元素数。 |

下面是一个示例代码:

### add()方法:
在ArrayList末尾添加元素或在指定位置添加。

```java
import java.util.ArrayList;

public class ArrayListDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");
System.out.println(list);
}
}
```

输出结果为:

```
[apple, banana, orange]
```

### get()方法:
获取指定位置元素。

```java
import java.util.ArrayList;

public class ArrayListDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");
String fruit = list.get(1);
System.out.println(fruit);
}
}
```

输出结果为:

```
banana
```

### remove()方法:
删除指定位置或指定元素。

```java
import java.util.ArrayList;

public class ArrayListDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");
list.remove(1);
System.out.println(list);
list.remove("orange");
System.out.println(list);
}
}
```

输出结果为:

```
[apple, orange]
[apple]
```

### size()方法:
获取ArrayList的元素个数。

```java
import java.util.ArrayList;

public class ArrayListDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");
int size = list.size();
System.out.println(size);
}
}
```

输出结果为:

```
3
```

### set()方法:
替换指定位置的元素。

```java
import java.util.ArrayList;

public class ArrayListDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");
list.set(1, "pear");
System.out.println(list);
}
}
```

输出结果为:

```
[apple, pear, orange]
```

### indexOf()方法:
查找指定元素的位置。

```java
import java.util.ArrayList;

public class ArrayListDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");
int index = list.indexOf("banana");
System.out.println(index);
}
}
```

输出结果为:

```
1
```

### clear()方法:
清空ArrayList中的所有元素。

```java
import java.util.ArrayList;

public class ArrayListDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");
list.clear();
System.out.println(list);
}
}
```

输出结果为:

```
[]
```
有不好的地方,可以指出大家一起共同进步

java集合框架(三)ArrayList常见方法的使用的更多相关文章

  1. Java集合框架之ArrayList浅析

    Java集合框架之ArrayList浅析 一.ArrayList综述: 位于java.util包下的ArrayList是java集合框架的重要成员,它就是传说中的动态数组,用MSDN中的说法,就是Ar ...

  2. Java——集合框架之ArrayList,LinkedList,迭代器Iterator

    概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...

  3. java 集合框架(三)Collection

    一.概述 Collection是集合框架的根接口.不同的集合具有不同的特性,比如有的集合可以有重复元素,有的不可以,有的可以排序,有的不可排序,如此等等,而Collection作为集合的根接口,它规范 ...

  4. java集合框架03——ArrayList和源码分析

    最近忙着替公司招人好久没写了,荒废了不好意思. 上一章学习了Collection的架构,并阅读了部分源码,这一章开始,我们将对Collection的具体实现进行详细学习.首先学习List.而Array ...

  5. Java集合框架(一)-ArrayList

    大佬理解->Java集合之ArrayList 1.ArrayList的特点 存放的元素有序 元素不唯一(可以重复) 随机访问快 插入删除元素慢 非线程安全 2.底层实现 底层初始化,使用一个Ob ...

  6. 深入理解java集合框架之---------Arraylist集合

    ArrayList简介 ArrayLIst是动态数组,用MSDN的说法就是Array的复杂版本,它提供了动态的增加和减少元素,实现了Collection和List接口,可以灵活的设置数组的大小,要注意 ...

  7. 深入理解java集合框架之---------Arraylist集合 -----添加方法

    Arraylist集合 -----添加方法 1.add(E e) 向集合中添加元素 /** * 检查数组容量是否够用 * @param minCapacity */ public void ensur ...

  8. Java集合框架(三)

     Map Map集合:该集合存储键值对,一对一对的往里存,而且要保证键的唯一性. Map |------HashTable:底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.J ...

  9. java集合框架05——ArrayList和LinkedList的区别

    前面已经学习完了List部分的源码,主要是ArrayList和LinkedList两部分内容,这一节主要总结下List部分的内容. List概括 先来回顾一下List在Collection中的的框架图 ...

  10. java集合框架之ArrayList

    参考http://how2j.cn/k/collection/collection-arraylist/363.html 使用数组的局限性 一个长度是10的数据:Hero[] heroArr=new ...

随机推荐

  1. 【故障公告】多年的故障老朋友又来了:数据库服务器 CPU 100%

    数据库服务器 CPU 100% 问题几乎每年都要来几次,从来都不事先打一声招呼,今年的第2次在我们正忙着会员救园的时候来了. 今天 13:35 首先收到我们自己的异常告警通知: Execution T ...

  2. 高性能MySQL实战(一):表结构

    最近因需求改动新增了一些数据库表,但是在定义表结构时,具体列属性的选择有些不知其所以然,索引的添加也有遗漏和不规范的地方,所以我打算为创建一个高性能表的过程以实战的形式写一个专题,以此来学习和巩固这些 ...

  3. SNAT与DNAT原理及应用

    SNAT与DNAT原理及应用 当内部地址要访问公网上的服务时(如httpd访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网 ...

  4. 番外1.ssh连接管理器

    目录 本篇前瞻 项目背景 ssh连接管理器 优点 使用方式 配置 使用方法 快速开始 注意点 使用样例 本篇后记 本篇前瞻 学习完go语言基础的专栏,我们究竟写出怎么样的实用工具呢?我在github上 ...

  5. linux tcpdump 使用小结(二)

    转载请注明出处: TCPDump是一个功能强大的网络抓包工具,它能够在命令行界面捕获.分析和解析网络数据包.下面是TCPDump命令的使用总结,包括使用语法.常用参数说明等: 使用语法:tcpdump ...

  6. 一个颜值功能双在线的Zookeeper可视化工具

    大家好,我是 Java陈序员,今天给大家介绍一个颜值功能双在线的 Zookeeper 可视化工具. 项目介绍 PrettyZoo 是一个基于 Apache Curator 和 JavaFX 实现的 Z ...

  7. linux安装clickhouse

    linux安装clickhouse 1. 系统要求 ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运 ...

  8. 两种方式,创建有返回值的DB2函数

    函数场景:路径信息由若干个机构编码组成,且一个机构编码是9位字符. 要求:获取路径信息,并且删除路径中包含'99'开头的机构编码. 从客户端及服务器端分别创建ignore99(pathinfo var ...

  9. Go with Protobuf

    原文在这里. 本教程为 Go 程序员提供了使用Protocol buffer的基本介绍. 本教程使用proto3向 Go 程序员介绍如何使用 protobuf.通过创建一个简单的示例应用程序,它向你展 ...

  10. 基于 P-Tuning v2 进行 ChatGLM2-6B 微调实践

    微调类型简介 1. SFT监督微调:适用于在源任务中具有较高性能的模型进行微调,学习率较小.常见任务包括中文实体识别.语言模型训练.UIE模型微调.优点是可以快速适应目标任务,但缺点是可能需要较长的训 ...