Table of Contents
ToggleJava ArrayList Methods
使用動態陣列來存儲元素,就像一個陣列,實現可調整大小陣列的功能,可以隨時增加或刪除元素,比傳統的陣列更靈活,實作集合框架的 List 接口,ArrayList Java Methods 介紹常見的 add 、 get 、 set 、 clear 、 size 等方法,了解陣列列表的不同操作和方法,本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- java_147
| +- list
| +- arraylist
| +- ArrayListMethodsTest.java
單元測試
ArrayList Java Methods 提供新增、取得、修改、刪除等操作列表中的元素。
add
建立一個 ArrayList ,增加三個元素。
@Test
public void add() {
int expectedSize = 3;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
System.out.println(list);
assertEquals(expectedSize, list.size());
}
[Apple, Banana, Cherry]
addByIndex
建立一個 ArrayList,內有三個元素 ,指定位置增加第四個元素。
@Test
public void addByIndex() {
int expectedSize = 4;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
list.add(2, "Grape");
System.out.println(list);
assertEquals(expectedSize, list.size());
}
[Apple, Banana, Grape, Cherry]
addAll
建立兩個 ArrayList ,內各有三個元素,合併成為一個 List 。
@Test
public void addAll() {
int expectedSize = 6;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
List<String> list2 = new ArrayList<>();
list2.add("Grape");
list2.add("Lemon");
list2.add("Mango");
list.addAll(list2);
System.out.println(list);
assertEquals(expectedSize, list.size());
}
[Apple, Banana, Cherry, Grape, Lemon, Mango]
get
ArrayList Methods Java 建立一個 ArrayList ,內有三個元素,取得指定位置元素。
@Test
public void get() {
String expected = "Banana";
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
String value = list.get(1);
System.out.println(value);
assertEquals(expected, value);
}
Banana
set
ArrayList Methods Java 建立一個 ArrayList ,內有三個元素,修改指定位置元素。
@Test
public void set() {
String expected = "Grape";
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
System.out.println(list);
list.set(0, "Grape");
System.out.println(list);
assertEquals(expected, list.get(0));
}
[Apple, Banana, Cherry]
[Grape, Banana, Cherry]
remove
ArrayList Methods Java 建立一個 ArrayList ,內有三個元素,刪除指定位置元素。
@Test
public void remove() {
int expectedSize = 2;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
list.remove(0);
System.out.println(list);
assertEquals(expectedSize, list.size());
}
[Banana, Cherry]
removeAll
ArrayList Methods in Java 建立一個 ArrayList ,內有三個元素,刪除來自另一個 List 中的元素。
@Test
public void removeAll() {
int expectedSize = 1;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
List<String> list2 = new ArrayList<>();
list2.add("Apple");
list2.add("Banana");
list2.add("Mango");
list.removeAll(list2);
System.out.println(list);
assertEquals(expectedSize, list.size());
}
[Cherry]
clear
ArrayList Methods in Java 建立一個 ArrayList ,內有三個元素,刪除所有元素。
@Test
public void clear() {
int expectedSize = 0;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
list.clear();
System.out.println(list);
assertEquals(expectedSize, list.size());
}
[]
size
ArrayList Methods in Java 建立一個 ArrayList ,內有三個元素,取得集合大小。
@Test
public void size() {
int expectedSize = 3;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
System.out.println(list.size());
assertEquals(expectedSize, list.size());
}
3
isEmpty
建立一個 ArrayList ,檢查是否為空 List。
@Test
public void isEmpty() {
List<String> list = new ArrayList<>();
System.out.println(list.isEmpty());
assertTrue(list.isEmpty());
list.add("Apple");
list.add("Banana");
list.add("Cherry");
System.out.println(list.isEmpty());
assertFalse(list.isEmpty());
}
true
false
ArrayListMethodsTest.java
ArrayList Methods in Java 新增單元測試,驗證 ArrayList Functions in Java 是否符合預期。
package org.ruoxue.java_147.list.arraylist;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
public class ArrayListMethodsTest {
@Test
public void add() {
int expectedSize = 3;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
System.out.println(list);
assertEquals(expectedSize, list.size());
}
@Test
public void addByIndex() {
int expectedSize = 4;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
list.add(2, "Grape");
System.out.println(list);
assertEquals(expectedSize, list.size());
}
@Test
public void addAll() {
int expectedSize = 6;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
List<String> list2 = new ArrayList<>();
list2.add("Grape");
list2.add("Lemon");
list2.add("Mango");
list.addAll(list2);
System.out.println(list);
assertEquals(expectedSize, list.size());
}
@Test
public void get() {
String expected = "Banana";
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
String value = list.get(1);
System.out.println(value);
assertEquals(expected, value);
}
@Test
public void set() {
String expected = "Grape";
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
System.out.println(list);
list.set(0, "Grape");
System.out.println(list);
assertEquals(expected, list.get(0));
}
@Test
public void remove() {
int expectedSize = 2;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
list.remove(0);
System.out.println(list);
assertEquals(expectedSize, list.size());
}
@Test
public void removeAll() {
int expectedSize = 1;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
List<String> list2 = new ArrayList<>();
list2.add("Apple");
list2.add("Banana");
list2.add("Mango");
list.removeAll(list2);
System.out.println(list);
assertEquals(expectedSize, list.size());
}
@Test
public void clear() {
int expectedSize = 0;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
list.clear();
System.out.println(list);
assertEquals(expectedSize, list.size());
}
@Test
public void size() {
int expectedSize = 3;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
System.out.println(list.size());
assertEquals(expectedSize, list.size());
}
@Test
public void isEmpty() {
List<String> list = new ArrayList<>();
System.out.println(list.isEmpty());
assertTrue(list.isEmpty());
list.add("Apple");
list.add("Banana");
list.add("Cherry");
System.out.println(list.isEmpty());
assertFalse(list.isEmpty());
}
}
心得分享
ArrayList Functions in Java 操作比 LinkedList 慢一點,因為如果從陣列列表中刪除任何元素,則需要進行大量移位,提供了幾種 ArrayList 常見方法的操作範例,在應用上相當廣泛,熟悉 ArrayList Methods in Java 這些方法的操作,可以快速撰寫程式,降低錯誤率。