@[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. 8 最全的零基础Flask教程

    最全的零基础Flask教程 1 Flask介绍 1.1 为什么要使用Flask Django和Flask是Python使用最多的两个框架 1.2 Flask是什么 Flask诞生于2010年,是Arm ...

  2. [python]爬取手机号码前缀和地区信息

    概述 使用python爬取手机号码前缀7位.区号和地区. 小网站不容易,对爬虫也挺友好,就不放链接了. 代码 import requests from lxml import etree from f ...

  3. UI通过元素定位实现特定区域截图

    最近计划做一个自动截图的工具,目的是实现性能测试资源监控平台(grafana)各硬件资源的自动截图,解放手工操作.前期的截图做了如下探索. 1. 整个页面截图 1.1 代码实现 通过save_scre ...

  4. .NET周刊【8月第1期 2023-08-06】

    国内文章 NativeBuferring,一种零分配的数据类型(上篇) https://www.cnblogs.com/artech/p/17586781.html 之前一个项目涉及到针对海量(千万级 ...

  5. 解决win10/ubuntu端口占用问题

    win10解决方案 首先打开cmd命令行 命令行里输入 netstat -ano|findstr 被占用端口号 然后可以看到占用该端口号的pid 输入taskkill -f -pid pid号即可 u ...

  6. 11、Mybatis之逆向工程

    11.1.正向与逆向工程概述 正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表:例如Hibernate是支持正向工程的. 逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成Ja ...

  7. 京东获得JD商品详情 API 返回值说明

    ​ item_get-获得JD商品详情  API测试 onebound.jd.item_get 公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中) ...

  8. CodeForces 1332D Walk on Matrix

    题意 \(Bob\)想解决一个问题:一个\(n\cdot m\)的矩阵,从\((1,1)\)出发,只能走右和下,问从\((1,1)\)到\((n,m)\)的最大\(\&\)和 他的算法如下(\ ...

  9. iOS开发过程中的内存监控

  10. 开源XL-LightHouse与Flink、ClickHouse之类技术相比有什么优势

    Flink是一款非常优秀的流式计算框架,而ClickHouse是一款非常优秀的OLAP类引擎,它们是各自所处领域的佼佼者,这一点是毋庸置疑的.Flink除了各种流式计算场景外也必然可以用于流式统计,C ...