Table of Contents
ToggleJava LinkedList Methods
使用雙向鏈結的資料結構,是一種線性結構,其中元素不存儲在連續位置,每個元素都是一個單獨的對象,具有資料和地址部分,這些元素使用指針和地址鏈結,每個元素稱為一個節點 ,LinkedList Java Methods 介紹常見的 add 、 get 、 set 、 clear 、 size 等方法,本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- java_147
| +- queue
| +- linkedlist
| +- LinkedListMethodsTest.java
單元測試
LinkedList Java Methods 提供新增、取得、修改、刪除等操作列表中的元素。
add
建立一個 LinkedList ,增加三個元素。
@Test
public void add() {
int expectedSize = 3;
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
System.out.println(list);
assertEquals(expectedSize, list.size());
}
[Papaya, Strawberry, Watermelon]
addByIndex
建立一個 LinkedList ,內有三個元素,指定位置增加第四個元素。
@Test
public void addByIndex() {
int expectedSize = 4;
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
list.add(2, "Durian");
System.out.println(list);
assertEquals(expectedSize, list.size());
}
[Papaya, Strawberry, Durian, Watermelon]
addAll
建立兩個 LinkedList ,內各有三個元素,合併成為一個 List 。
@Test
public void addAll() {
int expectedSize = 6;
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
List<String> list2 = new LinkedList<String>();
list2.add("Durian");
list2.add("Guava");
list2.add("Pitaya");
list.addAll(list2);
System.out.println(list);
assertEquals(expectedSize, list.size());
}
[Papaya, Strawberry, Watermelon, Durian, Guava, Pitaya]
get
LinkedList Methods Java 建立一個 LinkedList ,內有三個元素,取得指定位置元素。
@Test
public void get() {
String expected = "Strawberry";
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
String value = list.get(1);
System.out.println(value);
assertEquals(expected, value);
}
Strawberry
set
LinkedList Methods Java 建立一個 LinkedList ,內有三個元素,修改指定位置元素。
@Test
public void set() {
String expected = "Durian";
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
System.out.println(list);
list.set(0, "Durian");
System.out.println(list);
assertEquals(expected, list.get(0));
}
[Papaya, Strawberry, Watermelon]
[Durian, Strawberry, Watermelon]
remove
LinkedList Methods Java 建立一個 LinkedList ,內有三個元素,刪除指定位置元素。
@Test
public void remove() {
int expectedSize = 2;
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
list.remove(0);
System.out.println(list);
assertEquals(expectedSize, list.size());
}
[Strawberry, Watermelon]
removeAll
LinkedList Methods in Java 建立一個 LinkedList ,內有三個元素,刪除來自另一個 List 中的元素。
@Test
public void removeAll() {
int expectedSize = 1;
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
List<String> list2 = new LinkedList<String>();
list2.add("Papaya");
list2.add("Strawberry");
list2.add("Pitaya");
list.removeAll(list2);
System.out.println(list);
assertEquals(expectedSize, list.size());
}
[Watermelon]
clear
LinkedList Methods in Java 建立一個 LinkedList ,內有三個元素,刪除所有元素。
@Test
public void clear() {
int expectedSize = 0;
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
list.clear();
System.out.println(list);
assertEquals(expectedSize, list.size());
}
[]
size
LinkedList Methods in Java 建立一個 LinkedList ,內有三個元素,取得集合大小。
@Test
public void size() {
int expectedSize = 3;
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
System.out.println(list.size());
assertEquals(expectedSize, list.size());
}
3
isEmpty
建立一個 LinkedList ,檢查是否為空 List 。
@Test
public void isEmpty() {
List<String> list = new LinkedList<String>();
System.out.println(list.isEmpty());
assertTrue(list.isEmpty());
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
System.out.println(list.isEmpty());
assertFalse(list.isEmpty());
}
true
false
LinkedListMethodsTest.java
LinkedList Methods Java 新增單元測試,驗證是否符合預期。
package org.ruoxue.java_147.queue.linkedlist;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.LinkedList;
import java.util.List;
import org.junit.Test;
public class LinkedListMethodsTest {
@Test
public void add() {
int expectedSize = 3;
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
System.out.println(list);
assertEquals(expectedSize, list.size());
}
@Test
public void addByIndex() {
int expectedSize = 4;
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
list.add(2, "Durian");
System.out.println(list);
assertEquals(expectedSize, list.size());
}
@Test
public void addAll() {
int expectedSize = 6;
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
List<String> list2 = new LinkedList<String>();
list2.add("Durian");
list2.add("Guava");
list2.add("Pitaya");
list.addAll(list2);
System.out.println(list);
assertEquals(expectedSize, list.size());
}
@Test
public void get() {
String expected = "Strawberry";
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
String value = list.get(1);
System.out.println(value);
assertEquals(expected, value);
}
@Test
public void set() {
String expected = "Durian";
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
System.out.println(list);
list.set(0, "Durian");
System.out.println(list);
assertEquals(expected, list.get(0));
}
@Test
public void remove() {
int expectedSize = 2;
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
list.remove(0);
System.out.println(list);
assertEquals(expectedSize, list.size());
}
@Test
public void removeAll() {
int expectedSize = 1;
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
List<String> list2 = new LinkedList<String>();
list2.add("Papaya");
list2.add("Strawberry");
list2.add("Pitaya");
list.removeAll(list2);
System.out.println(list);
assertEquals(expectedSize, list.size());
}
@Test
public void clear() {
int expectedSize = 0;
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
list.clear();
System.out.println(list);
assertEquals(expectedSize, list.size());
}
@Test
public void size() {
int expectedSize = 3;
List<String> list = new LinkedList<String>();
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
System.out.println(list.size());
assertEquals(expectedSize, list.size());
}
@Test
public void isEmpty() {
List<String> list = new LinkedList<String>();
System.out.println(list.isEmpty());
assertTrue(list.isEmpty());
list.add("Papaya");
list.add("Strawberry");
list.add("Watermelon");
System.out.println(list.isEmpty());
assertFalse(list.isEmpty());
}
}
心得分享
LinkedList Methods in Java 每個元素都是一個節點,在單個位置存儲 3 個值,前一個地址、資料和下一個地址,每當添加元素時,上一個和下一個地址都會更改,維護插入順序,訪問一個元素,需要從頭開始循環訪問到該元素,LinkedList Functions in Java 提供了幾種 LinkedList 常見方法的操作範例。