ArrayList ใน Java

⚡ สรุปอย่างชาญฉลาด

ArrayList ใน Java เป็นโครงสร้างข้อมูลแบบไดนามิกที่ปรับขนาดได้ ซึ่งจะขยายและหดตัวโดยอัตโนมัติเมื่อมีการเพิ่มหรือลบองค์ประกอบ ซึ่งแตกต่างจากอาร์เรย์ที่มีความยาวคงที่ โดยมีเมธอดในตัว เช่น add, remove, size และ contains สำหรับการจัดการองค์ประกอบอย่างยืดหยุ่น

  • 📦 นิยามของ ArrayList: โครงสร้างข้อมูลแบบไดนามิกที่มีความยาวแปรผันได้ ซึ่งจะปรับขนาดโดยอัตโนมัติเมื่อองค์ประกอบเปลี่ยนแปลง
  • 🆚 เทียบกับ Array: ต่างจากอาร์เรย์ที่มีความยาวคงที่ ArrayList สามารถเพิ่มและลดขนาดได้ในระหว่างการทำงาน
  • add() & remove(): เพิ่มองค์ประกอบต่อท้ายหรือตามดัชนีที่กำหนด และลบออกโดยใช้วัตถุหรือดัชนี
  • 📏 ขนาด() และ ประกอบด้วย(): ฟังก์ชัน `size()` จะส่งคืนจำนวนองค์ประกอบ และฟังก์ชัน `contains()` จะส่งคืนค่า `true` หากมีองค์ประกอบนั้นอยู่
  • 🔢 ดัชนีฐานศูนย์: เช่นเดียวกับอาร์เรย์ องค์ประกอบของ ArrayList เริ่มต้นที่ดัชนี 0

ArrayList ใน Java

ArrayList อยู่ในอะไร Java?

ArrayList ใน Java เป็นโครงสร้างข้อมูลที่สามารถขยายเพื่อรองรับองค์ประกอบเพิ่มเติมภายในตัวมันเอง และย่อกลับให้มีขนาดเล็กลงเมื่อองค์ประกอบถูกลบออก เป็นโครงสร้างข้อมูลที่สำคัญมากซึ่งมีประโยชน์ในการจัดการพฤติกรรมแบบไดนามิกขององค์ประกอบ

สงสัยว่า ArrayList เป็นอย่างไร Java อาจมีประโยชน์ ดูการสนทนาด้านล่าง –

รายการอาร์เรย์ใน Java

ใช้เพื่อการ Java ตัวอย่าง ArrayList ดูภาพต่อไปนี้ซึ่งเป็นภาพชายคนหนึ่งกำลังยืดหนังยางรัดผม ความยาวจริงของหนังยางจะสั้นกว่ามาก แต่เมื่อยืดออกแล้ว หนังยางจะยืดได้มากกว่าความยาวจริงมาก และสามารถใช้รัดหรือมัดสิ่งของที่มีขนาดใหญ่กว่าได้มาก ตอนนี้ ลองพิจารณาภาพต่อไปนี้ ซึ่งเป็นเชือกธรรมดาๆ ซึ่งไม่สามารถยืดออกได้และจะมีความยาวคงที่

รายการอาร์เรย์ใน Java

มันสามารถเติบโตได้ตามต้องการ และเมื่อจำเป็นต้องรองรับองค์ประกอบที่ต้องการจัดเก็บ และเมื่อองค์ประกอบถูกลบออก มันสามารถหดกลับเป็นขนาดที่เล็กลงได้ ดังนั้น เนื่องจากเพื่อนของเราประสบปัญหาเกี่ยวกับอาร์เรย์ที่เขาใช้ซึ่งไม่สามารถขยายหรือทำให้หดได้ เราจึงจะใช้ ArrayList อาร์เรย์ มีลักษณะเหมือนเชือกที่แสดงในภาพด้านบน ซึ่งจะมีความยาวคงที่ ไม่สามารถขยายหรือลดความยาวจากเดิมได้ ดังนั้นแถบยางยืดที่ยืดหยุ่นได้ของเราจึงคล้ายกับ Array List ในขณะที่เชือกสามารถถือเป็นอาร์เรย์ได้ ในทางเทคนิคแล้ว ArrayList Java ก็เหมือนกับอาเรย์แบบไดนามิกหรืออาเรย์ที่มีความยาวผันแปรได้

มาดูและทำความเข้าใจตัวอย่างโค้ดต่อไปนี้ Java ArrayList Syntax ที่จะช่วยคุณแก้ไข ArrayList

ArrayList<Object> a = new ArrayList<Object>();

วิธีการ ArrayList ใน Java

  • เพิ่ม ArrayList: ใช้เพื่อเพิ่มองค์ประกอบในรายการอาร์เรย์ หาก ArrayList มีองค์ประกอบอยู่แล้ว องค์ประกอบใหม่จะถูกเพิ่มหลังองค์ประกอบสุดท้าย เว้นแต่จะระบุดัชนี
    ไวยากรณ์:
    add(Object o);
  • ArrayList ลบ: องค์ประกอบที่ระบุจะถูกลบออกจากรายการและขนาดจะลดลงตามนั้น หรือคุณสามารถระบุดัชนีขององค์ประกอบที่จะลบออกได้
    ไวยากรณ์:
    remove(Object o);
  • Java ขนาดอาร์เรย์: วิธีนี้จะแสดงจำนวนองค์ประกอบในรายการอาร์เรย์ เช่นเดียวกับอาร์เรย์ องค์ประกอบแรกจะเริ่มต้นด้วยดัชนี 0 เช่นกัน
    ไวยากรณ์:
    int size();
  • ArrayList ประกอบด้วย: วิธีการนี้จะส่งกลับเป็นจริงถ้ารายการประกอบด้วยองค์ประกอบที่ระบุ
    ไวยากรณ์:
    boolean contains(Object o);

Java ตัวอย่าง ArrayList

ต่อไปนี้คือ Java ตัวอย่าง ArrayList:

import java.util.ArrayList;
class Test_ArrayList {
 public static void main(String[] args) {
  //Creating a generic ArrayList
  ArrayList<String> arlTest = new ArrayList<String>();
  //Size of arrayList
  System.out.println("Size of ArrayList at creation: " + arlTest.size());
  //Lets add some elements to it
  arlTest.add("D");
  arlTest.add("U");
  arlTest.add("K");
  arlTest.add("E");

  //Recheck the size after adding elements
  System.out.println("Size of ArrayList after adding elements: " + arlTest.size());

  //Display all contents of ArrayList
  System.out.println("List of all elements: " + arlTest);

  //Remove some elements from the list
  arlTest.remove("D");
  System.out.println("See contents after removing one element: " + arlTest);

  //Remove element by index
  arlTest.remove(2);
  System.out.println("See contents after removing element by index: " + arlTest);

  //Check size after removing elements
  System.out.println("Size of arrayList after removing elements: " + arlTest.size());
  System.out.println("List of all elements after removing elements: " + arlTest);

  //Check if the list contains "K"
  System.out.println(arlTest.contains("K"));

 }
}

Output:

Size of ArrayList at creation: 0
Size of ArrayList after adding elements: 4
List of all elements: [D, U, K, E]
See contents after removing one element: [U, K, E]
See contents after removing element by index: [U, K]
Size of arrayList after removing elements: 2
List of all elements after removing elements: [U, K]
true

หมายเหตุ: เพื่อความเรียบง่าย องค์ประกอบที่แสดงในโค้ดด้านบนเป็นองค์ประกอบอักขระเดี่ยว เราสามารถเพิ่มสตริง จำนวนเต็ม ฯลฯ ได้

ใช้ Java รายการอาร์เรย์

คำถามที่พบบ่อย

อาร์เรย์มีขนาดคงที่ที่กำหนดไว้ตั้งแต่สร้าง ในขณะที่ ArrayList เป็นแบบไดนามิกและปรับขนาดได้โดยอัตโนมัติ อาร์เรย์สามารถเก็บค่าพื้นฐานและอ็อบเจ็กต์ได้ ส่วน ArrayList เก็บได้เฉพาะอ็อบเจ็กต์และมีเมธอดในตัว

ArrayList ใช้โครงสร้างข้อมูลแบบไดนามิก ทำให้เข้าถึงข้อมูลแบบสุ่มได้เร็ว แต่การแทรกและลบข้อมูลตรงกลางจะช้าลง ในขณะที่ LinkedList ใช้โหนด ทำให้แทรกและลบข้อมูลได้เร็วกว่า แต่การเข้าถึงข้อมูลตามดัชนีจะช้ากว่า

ไม่ ArrayList ไม่รองรับการซิงโครไนซ์และไม่ปลอดภัยต่อการใช้งานแบบมัลติเธรด หากต้องการเข้าถึงข้อมูลพร้อมกัน ให้ใช้ Collections.synchronizedList() หรือ CopyOnWriteArrayList เพื่อหลีกเลี่ยงความไม่สอดคล้องกันของข้อมูลในโปรแกรมแบบมัลติเธรด

ผู้ช่วย AI สามารถสร้างโค้ด ArrayList แนะนำเมธอดที่เหมาะสม อธิบายเรื่องเจเนริก และตรวจจับปัญหาต่างๆ เช่น IndexOutOfBoundsException ช่วยให้ผู้เริ่มต้นจัดการลิสต์ได้อย่างถูกต้องและมีประสิทธิภาพ

ใช่แล้ว AI สามารถแนะนำได้ว่าควรใช้ ArrayList, LinkedList, HashSet หรือ HashMap โดยพิจารณาจากรูปแบบการเข้าถึง ลำดับ และความต้องการด้านประสิทธิภาพของโปรแกรมของคุณ

สรุปโพสต์นี้ด้วย: