ตัวเปรียบเทียบและตัวเปรียบเทียบเป็นอินเทอร์เฟซของ java ซึ่งเป็นภาษาการเขียนโปรแกรมระดับสูง ใช้เพื่อจัดเรียงองค์ประกอบคอลเลกชัน Java จัดเตรียมอินเทอร์เฟซที่แตกต่างกันทั้งสองนี้เพื่อจัดเรียงอ็อบเจ็กต์ มีความแตกต่างที่โดดเด่นมากมายระหว่างอินเทอร์เฟซทั้งสองที่สร้างเส้นแบ่งระหว่างทั้งสองโดยพิจารณาจากฟังก์ชันที่พวกเขาดำเนินการ
เปรียบเทียบเทียบกับตัวเปรียบเทียบ
ความแตกต่างระหว่างตัวเปรียบเทียบและตัวเปรียบเทียบมีความโดดเด่นในพารามิเตอร์ต่างๆ เช่น อินเทอร์เฟซเดิมใช้เพื่อจัดเรียงคอลเล็กชันผ่านองค์ประกอบเดียว ในขณะที่อินเทอร์เฟซต่อมาใช้เพื่อจัดเรียงคอลเล็กชันตามองค์ประกอบต่างๆ บางคลาสต้องใช้จาวาเอง Lang.Comparable interface เพื่อให้สามารถเปรียบเทียบอินสแตนซ์ได้อย่างมีประสิทธิภาพในขณะที่อินเทอร์เฟซตัวเปรียบเทียบอยู่ภายนอกประเภทองค์ประกอบที่กำลังเปรียบเทียบ
Comparable คืออินเทอร์เฟซที่มีอยู่ในแพ็คเกจ lang ของภาษา java และมีวัตถุประสงค์เพื่อจัดเรียงองค์ประกอบคอลเลกชันโดยใช้แอตทริบิวต์เดียว เช่น อายุ ราคา รหัส ชื่อ ฯลฯ มีความสามารถในการเปรียบเทียบตัวเองกับ วัตถุอื่นใด สามารถจัดเรียงวัตถุประเภทใดก็ได้ ไม่ว่าจะเป็นรายการหรืออาร์เรย์
ตัวเปรียบเทียบคืออินเทอร์เฟซที่มีอยู่ในแพ็คเกจ util ของภาษาจาวา และจุดประสงค์ของมันคือเพื่อจัดเรียงองค์ประกอบคอลเลกชันโดยใช้แอตทริบิวต์หลายรายการพร้อมกัน เป็นคลาสที่แยกจากกันและอยู่ภายนอกประเภทขององค์ประกอบที่กำลังเปรียบเทียบ คลาสคอลเลกชันจัดเตรียมวิธีการเรียงลำดับที่สองที่ยอมรับตัวเปรียบเทียบเป็นพารามิเตอร์
ตารางเปรียบเทียบระหว่างตัวเปรียบเทียบและตัวเปรียบเทียบ
พารามิเตอร์ของการเปรียบเทียบ | เปรียบได้ | เครื่องเปรียบเทียบ |
ประเภทการเรียงลำดับ | มันมีลำดับการเรียงลำดับเดียว | มันมีลำดับการเรียงลำดับหลายรายการ |
การปรับเปลี่ยนคลาส | มันปรับเปลี่ยนคลาสจริง | มันไม่ได้ปรับเปลี่ยนคลาสจริง |
ที่ตั้งของแพ็คเกจ | มีอยู่ในแพ็คเกจ java-lang | มันมีอยู่ในจาวา ยูทิลิตี้แพคเกจ |
วิธีการ | มันมีเมธอด CompareTo() | มีวิธีการเปรียบเทียบ () |
วิธีการเรียงลำดับ | วิธีการ Collections.sort(List) | วิธีการ Collections.sort(รายการ, ตัวเปรียบเทียบ) |
อะไรคือสิ่งที่เปรียบเทียบ?
ตามที่กล่าวไว้ข้างต้น การเปรียบเทียบเป็นอินเทอร์เฟซของภาษาการเขียนโปรแกรม Java ซึ่งมีอยู่ในแพ็คเกจ lang และใช้เพื่อจัดเรียงองค์ประกอบคอลเลกชันโดยใช้แอตทริบิวต์เดียวเท่านั้น อินเทอร์เฟซที่เปรียบเทียบได้มีเมธอดเดียวคือ CompareTo() วัตถุที่เปรียบเทียบกันได้นั้นสามารถเปรียบเทียบกับวัตถุอื่นได้ เพื่อให้คลาสสามารถเปรียบเทียบอินสแตนซ์ได้ เป็นเงื่อนไขที่จำเป็นสำหรับคลาสที่จะใช้อินเทอร์เฟซที่เปรียบเทียบได้
อินเทอร์เฟซที่เปรียบเทียบได้ได้รับการพัฒนาสำหรับวัตถุที่มีการจัดลำดับตามธรรมชาติ กล่าวอีกนัยหนึ่งนี่หมายความว่าวัตถุที่จะจัดเรียงต้องมีลำดับที่จะจัดเรียง ในแง่ตรรกะ อินเทอร์เฟซที่เปรียบเทียบได้จะเปรียบเทียบการอ้างอิง "นี้" กับอ็อบเจ็กต์ที่กล่าวถึงในเมธอด เมื่ออินเทอร์เฟซที่เปรียบเทียบได้ถูกนำมาใช้โดยคลาสใด ๆ วัตถุของคลาสนั้นสามารถจัดเรียงได้โดยใช้คอลเล็กชัน sort() หรืออาร์เรย์ วิธี sort()
ออบเจ็กต์จะถูกจัดเรียงโดยอัตโนมัติในลำดับธรรมชาติที่กำหนดโดยเมธอด CompareTo สามารถเปรียบเทียบตัวเลข สตริง และประเภทอื่นๆ ได้ สามารถเปรียบเทียบสตริงได้โดยใช้การเปรียบเทียบตามตัวอักษร คลาสในตัวต่างๆ ของ java ใช้อินเทอร์เฟซที่เปรียบเทียบได้ สิ่งที่สำคัญที่สุดที่ควรจำไว้คืออินเทอร์เฟซที่เปรียบเทียบกันได้นั้นสามารถใช้เพื่อเปรียบเทียบวัตถุในคลาสเดียวกันเท่านั้น
เครื่องเปรียบเทียบคืออะไร?
อินเทอร์เฟซตัวเปรียบเทียบของภาษาการเขียนโปรแกรมจาวามีอยู่ในแพ็คเกจ util และใช้เพื่อจัดเรียงคอลเล็กชันตามแอตทริบิวต์หลายรายการพร้อมกัน ตัวเปรียบเทียบเป็นคลาสที่แยกจากกันโดยสิ้นเชิง โปรแกรมเมอร์ใช้เพื่อสร้างหลายคลาสที่ใช้อินเทอร์เฟซตัวเปรียบเทียบเพื่อวัตถุประสงค์ในการเปรียบเทียบวัตถุต่างๆ
ในการเปรียบเทียบออบเจกต์คอลเลกชัน ขั้นตอนแรกคือการสร้างคลาสที่ใช้เมธอดตัวเปรียบเทียบ ซึ่งมีเมธอด Compare() อยู่ด้วย ขั้นตอนต่อไปนี้คือการสร้างอินสแตนซ์ของคลาสที่ใช้อินเทอร์เฟซตัวเปรียบเทียบ ขั้นตอนสุดท้ายคือการเรียกใช้เมธอดโอเวอร์โหลด ซึ่งเป็นเมธอด sort() จากนั้นกำหนดทั้งรายการและอินสแตนซ์ของคลาสที่สร้างขึ้นในขั้นตอนก่อนหน้า
อินเทอร์เฟซตัวเปรียบเทียบเปรียบเทียบสองอ็อบเจ็กต์ของคลาสที่ต่างกัน อินเทอร์เฟซตัวเปรียบเทียบมีสองวิธีในนั้นคือวิธีเปรียบเทียบ () และวิธีเท่ากับ () วิธีเปรียบเทียบ () ใช้วัตถุที่แตกต่างกันสองรายการเป็นพารามิเตอร์ในการเปรียบเทียบ และวิธีการเท่ากับ () กำหนดว่าวัตถุที่ถูกส่งผ่านเท่ากับตัวเปรียบเทียบที่เรียกใช้หรือไม่ เมธอด equals() จะคืนค่าบูลีนเป็นเอาต์พุต True จะถูกส่งคืนเมื่ออ็อบเจ็กต์ผ่านไป และอ็อบเจ็กต์ที่เรียกใช้เป็นทั้งตัวเปรียบเทียบ และหากไม่เป็นเช่นนั้น ก็จะคืนค่าเท็จ
วิธีเปรียบเทียบ () ส่งคืนค่าจำนวนเต็มในผลลัพธ์ซึ่งบ่งชี้ว่าวัตถุที่ส่งผ่านทั้งสองมีขนาดใหญ่กว่า
ความแตกต่างที่สำคัญระหว่างตัวเปรียบเทียบและตัวเปรียบเทียบ
บทสรุป
แม้ว่าอินเทอร์เฟซทั้งสองจะใช้เพื่อจุดประสงค์ในการเรียงลำดับ แต่ก็มีความแตกต่างกันอย่างสิ้นเชิง มีพารามิเตอร์หรือมูลเหตุหลายอย่างซึ่งใช้พื้นฐานต่างกันในองค์ประกอบรายการเพื่อวัตถุประสงค์ที่แตกต่างกัน หากบุคคลต้องการจัดเรียงองค์ประกอบรายการใด ๆ ตามองค์ประกอบเดียวของคอลเลกชัน ก็สามารถใช้อินเทอร์เฟซที่เปรียบเทียบได้ มิฉะนั้น หากบุคคลนั้นต้องการจัดเรียงองค์ประกอบรายการใด ๆ ตามแอตทริบิวต์หลายรายการ คอลเลกชันนั้นควรได้รับการจัดเรียงโดยใช้อินเทอร์เฟซตัวเปรียบเทียบ อินเทอร์เฟซทั้งสองได้รับการพัฒนาเพื่อใช้สำหรับเป้าหมายที่แยกจากกันเพื่อให้บรรลุ
อ้างอิง
- https://dom-pubs.onlinelibrary.wiley.com/doi/abs/10.1111/j.1463-1326.2011.01545.x
- https://journals.asm.org/doi/abs/10.1128/aac.47.6.1824-1831.2003
- https://ieeexplore.ieee.org/abstract/document/6042862/