ความแตกต่างระหว่างตัวเปรียบเทียบและตัวเปรียบเทียบ (พร้อมตาราง)

สารบัญ:

Anonim

ตัวเปรียบเทียบและตัวเปรียบเทียบเป็นอินเทอร์เฟซของ 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 จะถูกส่งคืนเมื่ออ็อบเจ็กต์ผ่านไป และอ็อบเจ็กต์ที่เรียกใช้เป็นทั้งตัวเปรียบเทียบ และหากไม่เป็นเช่นนั้น ก็จะคืนค่าเท็จ

วิธีเปรียบเทียบ () ส่งคืนค่าจำนวนเต็มในผลลัพธ์ซึ่งบ่งชี้ว่าวัตถุที่ส่งผ่านทั้งสองมีขนาดใหญ่กว่า

ความแตกต่างที่สำคัญระหว่างตัวเปรียบเทียบและตัวเปรียบเทียบ

บทสรุป

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

อ้างอิง

  1. https://dom-pubs.onlinelibrary.wiley.com/doi/abs/10.1111/j.1463-1326.2011.01545.x
  2. https://journals.asm.org/doi/abs/10.1128/aac.47.6.1824-1831.2003
  3. https://ieeexplore.ieee.org/abstract/document/6042862/

ความแตกต่างระหว่างตัวเปรียบเทียบและตัวเปรียบเทียบ (พร้อมตาราง)