Collection vs Collections ใน Java: ความแตกต่างระหว่าง Collection & Collections ใน Java
เผยแพร่แล้ว: 2021-01-29สารบัญ
บทนำ
บทความนี้จะกล่าวถึงหนึ่งในคำถามยอดนิยมในภาษา Java – คอลเลคชันใน Java คืออะไร นอกจากนี้ คุณหมายถึงอะไรโดยคอลเล็กชันใน Java Collection และ Collections เหมือนกันหรือต่างกันใน Java หรือไม่?
คอลเลคชันคืออะไร?
คอลเล็กชัน สามารถอธิบายได้ง่ายๆ ว่าเป็น อินเทอร์เฟซ ด้วยความช่วยเหลือของ Collection เราสามารถจัดกลุ่มวัตถุต่าง ๆ ให้เป็นหน่วยเดียวได้อย่างง่ายดาย คอลเล็กชันจะสร้างรูทหรือส่วนหัวของลำดับชั้นของอินเทอร์เฟซ หากคุณรู้จักภาษา C++ เป็นอย่างดี ให้พิจารณาแนวคิดของ Collection ที่คล้ายกับ Containers ในภาษา C++ มาก อินเทอร์เฟซย่อยอื่นๆ ของลำดับชั้นนี้คือ ชุด รายการ แผนที่ คิว Deque ฯลฯ
Java JDK ไม่อนุญาตให้เราจัดการส่วนต่อประสานรูทคอนเทนเนอร์โดยตรง แต่ทำให้เราสามารถเข้าถึงอินเทอร์เฟซย่อยที่กล่าวถึงข้างต้นได้โดยตรง นอกจากนี้ยังมีอินเทอร์เฟซย่อยที่เราสามารถเข้าถึงได้ทางอ้อม ตัวอย่าง เช่น – ArrayList, PriorityQueue, Vector, HashSet เป็นต้น
ต้องการคอลเลกชัน?
อินเทอร์เฟซคอลเลกชันเหล่านี้ช่วยเราในการจัดการกับวัตถุต่างๆ โดยการจัดกลุ่มอย่างมีประสิทธิภาพและดำเนินการตามนั้น วัตถุเหล่านี้อาจเหมือนหรือแตกต่างจากกัน ตามวัตถุและวิธีการจัดการกับแต่ละวัตถุ เรามีอินเทอร์เฟซย่อยที่กล่าวถึงข้างต้น
ให้เราดูรายละเอียดอินเทอร์เฟซคอลเล็กชันทั่วไปบางส่วน:
- ชุด – สิ่งที่สำคัญที่สุดเกี่ยวกับชุดคือชุดไม่ควรมีองค์ประกอบหรือวัตถุที่ซ้ำกัน ส่วนต่อประสานชุดนี้สามารถรับได้จากจาวา ยูทิลิตี้แพคเกจ ชุดไม่ส่งคืนองค์ประกอบในคอลเล็กชันในลำดับที่คาดการณ์ได้ ไม่มีการจัดลำดับ และนักพัฒนา Java จำนวนมากมักลืมความจริงข้อนี้และพบข้อบกพร่องในโค้ดของตน
EnumSet, HashSet, LinkedHashSet, TreeSet, ConcurrentSkipList Set ฯลฯ เป็นคลาสบางคลาสที่สามารถนำไปใช้กับอินเทอร์เฟซ Set

- รายการ – การนำรายการไปใช้งานสามารถคิดได้ว่าคล้ายกับรายการ Python แต่มีข้อแตกต่างบางประการ อินเทอร์เฟซรายการใน Java คือคอลเล็กชันขององค์ประกอบหรืออ็อบเจ็กต์ที่เรียงลำดับ พวกเขาถูกจัดเรียง ยิ่งกว่านั้น Lists สามารถอนุญาตให้องค์ประกอบที่ซ้ำกันในคอลเลกชันของพวกเขาต่างจากชุด เช่นเดียวกับ Array องค์ประกอบของ List สามารถเข้าถึงได้โดยอิงจากดัชนีหรือตำแหน่งขององค์ประกอบ การดำเนินการพื้นฐานบางอย่างโดยใช้ Lists ได้แก่ – การค้นหาองค์ประกอบ การเข้าถึงองค์ประกอบจากรายการ ฯลฯ
Vector, Stack, LinkedList, ArrayList, CopyOnWriteArrayList เป็นคลาสบางคลาสที่ใช้บ่อยที่สุด ซึ่งสามารถใช้ได้กับอินเทอร์เฟซ List
- แผนที่ – สำหรับผู้ที่คุ้นเคยกับ Python เป็นอย่างดี Map Interface จะคล้ายกับโครงสร้างข้อมูลของพจนานุกรมในภาษา Python เมื่อใช้อินเทอร์เฟซแผนที่ เราสามารถจัดกลุ่มและจัดเก็บองค์ประกอบข้อมูลเป็นคู่คีย์-ค่าได้ จากข้อเท็จจริงแล้ว แต่ละคีย์จะไม่ซ้ำกันในแผนที่ ดังนั้นจึงไม่มีคีย์ที่ซ้ำกัน ใช้คีย์ ค่าที่สอดคล้องกันจะถูกส่งกลับ
HashMap, HashTable, EnumMap, TreeMap, IdentityHashMap, WeakHashMap เป็นคลาสบางคลาสที่สามารถนำไปใช้กับส่วนต่อประสานแผนที่ได้
- กอง - โปรแกรมเมอร์ส่วนใหญ่คุ้นเคยกับ Stacks and Queues แล้ว (คิวจะกล่าวถึงในไม่ช้า) อินเทอร์เฟซแบบสแต็กถูกใช้งานตามโครงสร้างข้อมูล LIFO ปกติ เช่น เข้าก่อนออกก่อน ในสแต็ก องค์ประกอบจะถูกผลักไปที่ปลายด้านหนึ่งของสแต็ก และองค์ประกอบจะโผล่ออกมาจากปลายด้านเดียวกันของสแต็กนั้น
- คิว – อินเทอร์เฟซคิว ตามโครงสร้างข้อมูลคิวปกติ ใช้วิธี FIFO FIFO ย่อมาจาก First In First Out กล่าวง่ายๆ ก็คือ องค์ประกอบจะถูกผลักที่ปลายด้านหนึ่งของคิวและโผล่ออกมาจากปลายอีกด้านหนึ่งของคิวนั้น
คอลเลคชันคืออะไร?
Collections เป็นเพียง คลาส ยูทิลิตี้ที่พบในจาวา ยูทิลิตี้แพคเกจ เมธอดที่อยู่ภายใต้คลาส Collections เป็นเมธอดสแตติกบังคับ

ต้องการคอลเลกชัน?
คอลเล็กชันมอบวิธีการที่ง่ายกว่าสำหรับนักพัฒนาในการดำเนินการพื้นฐานบางอย่างกับองค์ประกอบโดยไม่จำเป็นต้องเข้าไปดูรายละเอียดที่สำคัญของการดำเนินการนั้น นักพัฒนาสามารถมุ่งความสนใจไปที่งานหรือการดำเนินการที่ใหญ่กว่ามาก ดังนั้นคลาส Collections จึงสะดวกมากสำหรับนักพัฒนาที่มีประสบการณ์
ตัวอย่างเช่น – คลาสคอลเลกชันมีวิธีการค้นหาองค์ประกอบเฉพาะในคอลเลกชัน นอกจากนี้ยังมีวิธีการดำเนินการเรียงลำดับในองค์ประกอบของอินเทอร์เฟซคอลเลกชัน
คลาส Collections ที่ใช้กันทั่วไปคือ:

- Collections.binarySearch() – ค้นหาองค์ประกอบที่ต้องการในคอลเลกชันโดยใช้อัลกอริทึมการค้นหาไบนารียอดนิยม
- Collections.sort() – ดำเนินการเรียงลำดับบนคอลเลกชันที่ระบุ
- Collections.max() – ดังที่เห็นได้ชัดจากชื่อ มันจะส่งคืนองค์ประกอบสูงสุดจากคอลเล็กชันที่ระบุ
- Collections.min() – ส่งกลับองค์ประกอบขั้นต่ำจากคอลเลกชันที่ระบุ
- Collections.reverse() – กลับลำดับขององค์ประกอบที่มีอยู่ในคอลเลกชันที่ระบุ
- Collections.copy() – ตามชื่อที่แนะนำ การใช้สิ่งนี้ องค์ประกอบจากคอลเลกชันหนึ่งจะถูกคัดลอกไปยังอีกคอลเลกชันหนึ่ง
อ่านเพิ่มเติม: แนวคิดและหัวข้อโปรเจ็กต์ Java
เรียนรู้ หลักสูตรซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
บทสรุป
ดังนั้นใน Java Collection และ Collections จึงไม่เหมือนกัน คอลเล็กชันคืออินเทอร์เฟซที่คุณจัดกลุ่มออบเจ็กต์เป็นหน่วยเดียว คอลเล็กชันเป็นคลาสยูทิลิตี้ที่มีชุดการดำเนินการบางอย่างที่คุณดำเนินการกับคอลเล็กชัน คอลเล็กชันไม่มีเมธอดแบบคงที่ทั้งหมด แต่คอลเล็กชันประกอบด้วยเมธอดที่เป็นสแตติกทั้งหมด
จะเรียนรู้อะไรต่อไป? สนใจแมชชีนเลิร์นนิงและปัญญาประดิษฐ์ไหม upGrad เสนอประกาศนียบัตร PG ใน ML และ AI โดยความร่วมมือกับ IIIT-B ที่จะทำให้คุณมีทักษะสูงสุดในสาขาที่เป็นที่ต้องการมากที่สุด ซึ่งจะทำให้อาชีพของคุณประสบความสำเร็จ
หากคุณอยากทราบข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการและเครื่องมือในการพัฒนาซอฟต์แวร์ โปรดดูหลักสูตร upGrad Executive PG Program full stack Developer ที่ออกแบบมาสำหรับมืออาชีพที่ทำงาน
Collection ใน Java คืออะไร?
Java Collection คือการนำเฟรมเวิร์กของ Collection ไปใช้ ซึ่งมีคลาสมากมายที่จัดกลุ่มและจัดระเบียบอ็อบเจกต์คอลเล็กชัน การรวบรวมเป็นโครงสร้างข้อมูลที่ใช้ในการจัดเก็บข้อมูลที่คล้ายกันไว้ด้วยกัน การรวบรวมเป็นประเภทข้อมูลที่กำหนดโดยผู้ใช้ ใช้สำหรับจัดกลุ่มวัตถุในคอลเลกชัน คอลเล็กชันสามารถเป็นแบบที่ไม่สามารถแก้ไขได้หรือปรับเปลี่ยนได้ อินเทอร์เฟซการรวบรวมถูกกำหนดไว้ในแพ็คเกจ java.lang และอินเทอร์เฟซนี้ใช้งานโดยบางคลาสในแพ็คเกจ java.util คอลเล็กชันเป็นแบบทั่วไป คลาสย่อยทั้งหมดของ Collection ใน java ควรใช้อินเทอร์เฟซนี้ สิ่งที่ทำให้มีประโยชน์มากคือความจริงที่ว่าพวกเขาทั้งหมดใช้อินเทอร์เฟซทั่วไป ด้วยวิธีนี้ การจัดการวัตถุคอลเลกชันสามารถทำได้โดยไม่ต้องดัดแปลงใดๆ ซึ่งช่วยประหยัดเวลาได้มากและทำให้โค้ดของเราอ่านง่าย มีประสิทธิภาพ และนำกลับมาใช้ใหม่ได้มากขึ้น
ArrayList ใน Java คืออะไร?
ArrayList เป็นคลาสที่สำคัญใน Java มันถูกใช้เพื่อจัดเก็บรายการวัตถุที่มีขนาดคงที่ กล่าวอีกนัยหนึ่งคล้ายกับอาร์เรย์ การเพิ่ม การลบ และการปรับเปลี่ยนเนื้อหาของรายการทำได้เร็วกว่าใน ArrayList มากกว่าในอาร์เรย์ นอกจากนี้ หากคุณเปลี่ยนขนาดของรายการ รายการจะถูกปรับขนาดใหม่โดยอัตโนมัติ คลาส ArrayList ใช้อินเทอร์เฟซ List ดังนั้นคุณสามารถใช้วัตถุ ArrayList ได้ทุกที่ที่คุณจะใช้ Java List คลาส ArrayList ดูแลการปรับขนาดตามต้องการ ตัวอย่างเช่น หากคุณเรียกใช้เมธอด add( ) ส่งผ่านการอ้างอิงไปยังรายการองค์ประกอบเดียว อาร์เรย์ใหม่จะถูกจัดสรรเพื่อเก็บรายการ อาร์เรย์ใหม่จะเต็มไปด้วยองค์ประกอบเดียว เหมือนกับว่าคุณได้สร้างอาร์เรย์แล้วเติมด้วยองค์ประกอบเดียว เมื่อวัตถุ ArrayList ถูกทำลาย อาร์เรย์จะถูกยกเลิก
HashMap ใน Java คืออะไร?
HashMap ใน Java นั้นเป็นการนำ AbstractMap Interface ไปใช้งาน โดยพื้นฐานแล้วจะเป็นโครงสร้างข้อมูลที่ช่วยให้สามารถจัดเก็บและดึงข้อมูลคู่คีย์และค่าได้ ความแตกต่างหลัก ระหว่าง HashMap และ TreeMap คือ HashMap คำนวณรหัสแฮชในขณะที่สร้างรายการในขณะที่ TreeMap ใช้การเรียงลำดับตามธรรมชาติในการสั่งซื้อรายการ