Java LinkedList Methods - Java 147

Java LinkedList Methods – Java 147

Java 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 常見方法的操作範例。

發佈留言