ArrayList是Java中的一個動態數組類,可以根據實際需要自動調整數組的大小。ArrayList是基於數組實現的,它內部維護的是一個Object數組,預設初始化容量為10,當添加的元素個數超過了當前容量時,會自動擴容。ArrayList也被廣泛用於Java中的集合框架,例如Java中的List... ...
@[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);
}
}
```
輸出結果為:
```
[]
```
有不好的地方,可以指出大家一起共同進步