บทนำ
ในบทความนี้ เราจะเรียนรู้วิธีการเข้าถึงสมาชิก (Access elements) จาก LinkedList คลาส java.util.LinkedList ทำงานแบบ doubly-linked list การดำเนินการที่เข้าถึงด้วยดัชนีจะเดินทางผ่านลิสต์จากจุดเริ่มต้นหรือจุดสิ้นสุด ขึ้นอยู่กับจุดใดที่ใกล้กว่าดัชนีที่ระบุ
ตัวอย่างการทำงาน
อินพุทตัวอย่าง:
Input list: [Python, Java, Scala, Java, JavaScript]
เอาต์พุทที่คาดหวัง:
The element at index 3 is: Java
อัลกอริทึม
ขั้นตอนที่ 1 - เริ่มต้น ขั้นตอนที่ 2 - ประกาศ linked list ชื่อ input_list ขั้นตอนที่ 3 - กำหนดค่า ขั้นตอนที่ 4 - ใช้ฟังก์ชันสำเร็จรูป get() เข้าถึงสมาชิกเฉพาะตัวโดยส่งค่าดัชนี (index) เข้าไป ขั้นตอนที่ 5 - แสดงผลลัพธ์ ขั้นตอนที่ 6 - จบการทำงาน
ตัวอย่างที่ 1: เขียนในฟังก์ชัน main โดยตรง
import java.util.LinkedList;
public class Demo {
public static void main(String[] args) {
LinkedList input_list = new LinkedList<>();
input_list.add("Python");
input_list.add("Java");
input_list.add("Scala");
input_list.add("Java");
input_list.add("JavaScript");
System.out.println("The list is defined as: " + input_list);
String result_string = input_list.get(3);
System.out.print("The element at index 3 is: " + result_string);
}
}
เอาต์พุท
The list is defined as: [Python, Java, Scala, Java, JavaScript] The element at index 3 is: Java
ตัวอย่างที่ 2: ใช้เมธอดแยก (Object-Oriented Style)
import java.util.LinkedList;
public class Demo {
static void get_element(LinkedList input_list, int index) {
String result_string = input_list.get(index);
System.out.print("The element at index 3 is: " + result_string);
}
public static void main(String[] args) {
LinkedList input_list = new LinkedList<>();
input_list.add("Python");
input_list.add("Java");
input_list.add("Scala");
input_list.add("Java");
input_list.add("JavaScript");
System.out.println("The list is defined as: " + input_list);
int index = 3;
get_element(input_list, index);
}
}
เอาต์พุท
The list is defined as: [Python, Java, Scala, Java, JavaScript] The element at index 3 is: Java
หมายเหตุ: LinkedList.get(index) มี time complexity O(n) เนื่องต้องเดินทางจากหัวหรือท้ายลิสต์ จึงช้ากว่า ArrayList.get(index) ที่เป็น O(1)