คอลเลกชัน Java กรอบ
นานก่อนที่ใน Java 2, Java ให้เฉพาะกิจหมวดหมู่ ตัวอย่างเช่น: พจนานุกรมเวกเตอร์กองและการเรียนคุณสมบัติที่ใช้ในการจัดเก็บและจัดการกับกลุ่มของวัตถุ
แม้ว่าการเรียนเหล่านี้มีประโยชน์มาก แต่พวกเขาขาดกลางรวมกระทู้ ด้วยเหตุนี้การใช้ลักษณะระดับเวกเตอร์และใช้คุณสมบัติชั้นมีวิธีที่แตกต่างกันมาก
คอลเลกชันกรอบถูกออกแบบมาเพื่อตอบสนองวัตถุประสงค์ดังต่อไปนี้
- กรอบการทำงานจะต้องมีประสิทธิภาพสูง ชุดพื้นฐาน (อาร์เรย์แบบไดนามิกเชื่อมโยงรายการ, ต้นไม้, ตารางแฮช) การดำเนินงานยังจะต้องมีประสิทธิภาพ
- กรอบการทำงานที่ช่วยให้สำหรับชนิดของคอลเลกชันในลักษณะที่คล้ายคลึงกับระดับสูงของการทำงานร่วมกัน
- ส่งเสริมและการปรับตัวของคอลเลกชันจะต้องง่าย
ด้วยเหตุนี้กรอบการเก็บรวบรวมทั้งหมดได้รับการออกแบบชุดของอินเตอร์เฟซมาตรฐาน คุณสามารถใช้อินเตอร์เฟซมาตรฐานเหล่านี้เพื่อให้บรรลุเช่น LinkedList, HashSet, TreeSet และชอบนอกจากนี้คุณยังสามารถใช้คอลเลกชันของคุณเองผ่านทางเชื่อมต่อเหล่านี้
กรอบคอลเลกชันเป็นสถาปัตยกรรมแบบครบวงจรใช้ในการแสดงและจัดการกับคอลเลกชัน ทั้งหมดกรอบคอลเลกชันมีดังต่อไปนี้:
- อินเตอร์เฟซ: มันเป็นชนิดข้อมูลนามธรรมแสดงถึงคอลเลกชัน อินเตอร์เฟซที่ช่วยให้การจัดการที่เป็นอิสระจากรายละเอียดคอลเลกชันของผู้แทนของตน ในภาษาเชิงวัตถุอินเตอร์เฟซโดยทั่วไปรูปแบบลำดับชั้น
- การดำเนินงาน (ชั้น): เป็นสำนึกของคอลเลกชันของอินเตอร์เฟซที่ โดยพื้นฐานแล้วพวกเขามีโครงสร้างข้อมูลที่นำมาใช้ใหม่
- อัลกอริทึม: วัตถุบางคำนวณที่มีประโยชน์ที่ดำเนินการติดต่อในวิธีการเก็บข้อมูลในการดำเนินการเช่น: การค้นหาและการเรียงลำดับ ขั้นตอนวิธีการเหล่านี้จะถูกเรียกว่าหลายรัฐก็คงเป็นเพราะวิธีการเดียวกันสามารถมีการใช้งานที่แตกต่างกันในอินเตอร์เฟซที่คล้ายกัน
นอกเหนือไปจากคอลเลกชันกรอบนอกจากนี้ยังกำหนดอินเตอร์เฟซแผนที่หลายชั้นเรียน แผนที่จะถูกเก็บไว้ในคีย์ / คู่ค่า แม้จะมีคอลเลกชันแผนที่ไม่ได้ แต่พวกเขามีการบูรณาการอย่างเต็มที่ในการเก็บรวบรวม
การเชื่อมต่อการเก็บ
กรอบการเก็บกำหนดจำนวนของอินเตอร์เฟซ ส่วนนี้จะให้ภาพรวมของแต่ละอินเตอร์เฟซ:
เลขที่ | อินเตอร์เฟซคำอธิบาย |
---|---|
1 | อินเตอร์เฟซการเก็บช่วยให้คุณใช้กลุ่มของวัตถุเป็นลำดับชั้นรากเก็บอินเตอร์เฟซ |
2 | องค์ประกอบอินเตอร์เฟซรายการรับมรดกมาจากการเก็บรวบรวมและอินสแตนซ์รายการเก็บคอลเลกชันที่สั่งซื้อ |
3 | ตั้งค่า สืบทอดมาจากการเก็บมันเป็นคอลเลกชันที่มีองค์ประกอบที่ไม่ซ้ำกัน |
4 | SortedSet ตั้งอยู่ในการสืบทอดความเป็นระเบียบเรียบร้อยในการบันทึกการตั้งค่า |
5 | แผนที่ ปุ่มเพียงแผนที่ไปยังค่า |
6 | Map.Entry องค์ประกอบคำอธิบาย (คีย์ / คู่ค่า) ในแผนที่ แผนที่เป็นระดับชั้น |
7 | SortedMap สืบทอดมาจากแผนที่ดังนั้นที่สำคัญที่จัดขึ้นในลำดับ |
8 | การนับ นี่คือความหมายดั้งเดิมของอินเตอร์เฟซและวิธีการที่คุณสามารถระบุ (ครั้งหนึ่งเคยได้รับ) วัตถุในองค์ประกอบของคอลเลกชัน ประเพณีนี้ได้ถูกแทนที่โดย iterator อินเตอร์เฟซ |
คอลเลกชัน
Java ให้ชุดของระดับมาตรฐานดำเนินการติดต่อคอลเลกชัน บางคนมีการเรียนเฉพาะที่สามารถใช้งานได้ในขณะที่คนอื่น ๆ มีคลาสนามธรรมให้การดำเนินงานบางส่วนของอินเตอร์เฟซ
เรียนคอลเลกชันมาตรฐานได้สรุปไว้ในตารางต่อไปนี้:
เลขที่ | ระดับคำอธิบาย |
---|---|
1 | AbstractCollection เพื่อให้บรรลุถึงมากที่สุดของอินเตอร์เฟซคอลเลกชัน |
2 | AbstractList มรดกใน AbstractCollection และประสบความสำเร็จมากที่สุดของอินเตอร์เฟซรายการ |
3 | AbstractSequentialList สืบทอดมาจาก AbstractList ก็ให้การเข้าถึงองค์ประกอบข้อมูลในห่วงโซ่มากกว่าเข้าถึงโดยสุ่ม |
4 | LinkedList สืบทอดมาจาก AbstractSequentialList ก็ดำเนินรายการที่เชื่อมโยง |
5 | ArrayList ผ่านมรดก AbstractList อาร์เรย์แบบไดนามิก |
6 | AbstractSet มรดกใน AbstractCollection และประสบความสำเร็จมากที่สุดของอินเตอร์เฟซการตั้งค่า |
7 | HashSet เขาได้รับมรดก AbstractSet และใช้ตารางแฮช |
8 | LinkedHashSet กับการสั่งซื้อซ้ำคาดการณ์และการเชื่อมโยงรายชื่อแฮชอินเตอร์เฟซตารางชุด |
9 | TreeSet สืบทอดมาจาก AbstractSet โดยใช้องค์ประกอบของธรรมชาติขององค์ประกอบในการสั่งซื้อ |
10 | AbstractMap เพื่อให้บรรลุถึงมากที่สุดของอินเตอร์เฟซแผนที่ |
11 | HashMap HashMap เป็นตารางแฮชซึ่งเก็บเนื้อหาของคู่ค่าคีย์ข้อมูล (ค่าคีย์) การทำแผนที่ HashMap รับมรดก AbstractMap ตระหนักแผนที่ Cloneable อินเตอร์เฟซ java.io.Serializable |
12 | TreeMap เขาได้รับมรดก AbstractMap และการใช้งานของต้นไม้ |
13 | WeakHashMap ได้รับการถ่ายทอดระดับ AbstractMap ใช้คีย์อ่อนแอตารางแฮช |
14 | LinkedHashMap สืบทอดมาจาก HashMap โดยใช้องค์ประกอบของธรรมชาติขององค์ประกอบที่จะถูกจัดเรียง |
15 | IdentityHashMap AbstractMap มรดกระดับโดยใช้การอ้างอิงความเท่าเทียมกันเมื่อเปรียบเทียบกับเอกสาร |
ในการกวดวิชาก่อนหน้านี้เราได้รับการกล่าวโดยเรียน java.util ที่กำหนดไว้ในแพคเกจดังต่อไปนี้:
เลขที่ | ระดับคำอธิบาย |
---|---|
1 | เวกเตอร์ ระดับเวกเตอร์ใช้อาร์เรย์แบบไดนามิก และ ArrayList และที่คล้ายกัน แต่ทั้งสองมีความแตกต่าง |
2 | กอง สแต็คเป็น subclass ของเวกเตอร์ซึ่งดำเนินกอง LIFO มาตรฐาน |
3 | พจนานุกรม ระดับพจนานุกรมเป็นระดับนามธรรมที่ใช้ในการจัดเก็บคีย์ / คู่ค่าคล้ายกับการดำเนินการระดับที่ตั้งและแผนที่ |
4 | Hashtable Hashtable เป็นส่วนหนึ่งของ java.util เดิมเป็นการนำคอนกรีตพจนานุกรม |
5 | สรรพคุณ คุณสมบัติสืบทอดจาก Hashtable. หมายถึงชุดถาวรของคุณสมบัติ. ที่สำคัญแต่ละคนและความคุ้มค่าที่สอดคล้องกันในรายการทรัพย์สินเป็นสตริง |
6 | BitSet ชั้น Bitset สร้างชนิดพิเศษมากมายในการเก็บค่าบิต bitset ที่มีขนาดของอาร์เรย์จะต้องเพิ่มขึ้น |
ชั้น Bitset สร้างชนิดพิเศษมากมายในการเก็บค่าบิต bitset ที่มีขนาดของอาร์เรย์จะต้องเพิ่มขึ้น
ขั้นตอนวิธีการเก็บ
คอลเลกชันกรอบกำหนดหลายขั้นตอนวิธีการสามารถนำมาใช้ในการเก็บรวบรวมและการทำแผนที่ ขั้นตอนวิธีการเหล่านี้เป็นวิธีแบบคงที่ของชั้นที่ถูกกำหนดให้เป็นคอลเลกชัน
เมื่อพยายามที่จะเปรียบเทียบชนิดเข้ากันไม่ได้วิธีการบางอย่างสามารถโยน ClassCastException เมื่อพยายามที่จะปรับเปลี่ยนการตั้งค่าที่ไม่สามารถแก้ไขได้ข้อยกเว้น UnsupportedOperationException
คอลเลกชันกำหนดสามตัวแปรแบบคงที่: EMPTY_SET EMPTY_LIST, EMPTY_MAP ของ ตัวแปรเหล่านี้จะไม่เปลี่ยนรูป
เลขที่ | ขั้นตอนวิธีการรายละเอียด |
---|---|
1 | อัลกอริทึมการเก็บ นี่คือรายการของขั้นตอนวิธีการทั้งหมด |
วิธีการใช้การทำซ้ำโดย
โดยปกติแล้วคุณจะต้องการที่จะสำรวจคอลเลกชันขององค์ประกอบ ยกตัวอย่างเช่นองค์ประกอบของคอลเลกชันแต่ละคนจะแสดง
ทำมันวิธีที่ง่ายที่สุดคือการใช้ iterator มันเป็นวัตถุที่ใช้อินเตอร์เฟซ Iterator หรืออินเตอร์เฟซ ListIterator
Iterators เพื่อให้คุณสามารถลบองค์ประกอบที่จะได้รับหรือการตั้งค่าโดยการหมุนเวียน ListIterator รับมรดก Iterator ช่วยให้สองทางเข้าไปใน list และปรับเปลี่ยนองค์ประกอบ
วิธีการใช้เปรียบเทียบ
TreeSet และ TreeMap เรียงตามลำดับองค์ประกอบการจัดเก็บ. แต่นี้โดยการเปรียบเทียบอุปกรณ์ที่จะกำหนดไว้อย่างแม่นยำในแง่ของสิ่งที่เรียงลำดับ
อินเตอร์เฟซนี้จะช่วยให้เราในรูปแบบที่แตกต่างกันในการจัดเรียงชุด
เลขที่ | การเปรียบเทียบวิธีการอธิบาย |
---|---|
1 | การใช้งาน Java เปรียบเทียบ อินเตอร์เฟซให้เปรียบเทียบวิธีการทั้งหมดไว้ที่นี่โดยวิธีการเช่น |
ย่อ
Java รวบรวม Framework จัดโปรแกรมเมอร์ที่มีโครงสร้างข้อมูล prepackaged และขั้นตอนวิธีที่จะจัดการกับพวกเขา
คอลเลกชันเป็นวัตถุที่สามารถถืออ้างอิงถึงวัตถุอื่น ๆ คอลเลกชันประกาศอินเตอร์เฟซการดำเนินงานแต่ละประเภทของการเก็บสามารถดำเนินการได้
คอลเลกชันเรียนกรอบและการเชื่อมต่ออยู่ในแพคเกจ java.util