เนื้อหา
- คำสั่ง
- เรียงลำดับรายการที่ลิงก์ใน Java
- จัดเรียงโดยใช้การเปรียบเทียบเริ่มต้นและการกำหนดเอง
- เคล็ดลับ
- การเตือน
วิธีจัดระเบียบรายการที่ลิงก์ใน Java รายการที่ปิดเป็นหนึ่งในโครงสร้างข้อมูลที่สำคัญในโลกแห่งการเขียนโปรแกรม เป็นองค์กรของโหนดที่มีข้อมูลและการอ้างอิงที่ชี้ไปยังโหนดถัดไป ในการเรียงลำดับรายการที่ลิงก์ใน Java มีคลาสรายการที่ทำงานกับเฟรมเวิร์ก Collections ซึ่งใช้อัลกอริทึมเป็นการเรียงลำดับ
คำสั่ง
การจัดระเบียบรายการที่เชื่อมโยงใน Java (ภาพสอบปากคำโดย danimages จาก Fotolia.com)-
ประกาศรายการที่เชื่อมโยงโดยการสร้างวัตถุ LinkedList ใหม่และกำหนดตัวแปร LinkedList LinkedList มาจากคลาส List ทั่วไปดังนั้นเมธอดใด ๆ ที่ยอมรับ List จะได้รับการยอมรับโดยอ็อบเจกต์ LinkedList ด้วย "" LinkedList l = new LinkedList (); ""
-
เพิ่มวัตถุประเภทเดียวกัน (เช่นจำนวนเต็ม) ลงในรายการ สิ่งเหล่านี้สามารถเป็นวัตถุประเภทใดก็ได้ แต่เพื่อเรียงลำดับรายการที่เชื่อมโยงทั้งหมดจะต้องเป็นประเภทเดียวกัน
-
ใช้การ List.addFirst วิธีการแทรกวัตถุใหม่ที่ด้านบนของรายการเพื่อให้วัตถุใด ๆ ที่คุณเพิ่มอยู่ในลำดับที่ตรงกันข้าม ถ้าคุณต้องการเพิ่มลงในรายการให้ใช้เมธอด List.addLast "" list.addFirst (1); list.addFirst (3); list.addFirst (2); "
-
ใช้ตัววนซ้ำเพื่อวนซ้ำรายการและพิมพ์ก่อนและหลังที่คุณเห็นว่าวิธีการเรียงลำดับทำอะไร "" สำหรับ (Iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ());} "
เรียงลำดับรายการที่ลิงก์ใน Java
-
เรียงลำดับรายการด้วยตัวเปรียบเทียบเริ่มต้น เครื่องมือเปรียบเทียบเป็นวัตถุที่เปรียบเทียบสองวัตถุ วัตถุตัวเปรียบเทียบเริ่มต้นใช้ตัวดำเนินการที่เล็กลงดังนั้นรายการจะเรียงตามลำดับจากน้อยไปหามาก หากต้องการเรียงลำดับรายการให้ใช้วิธีการคงที่ Collections.sort "" Collections.sort (รายการ); ""
-
y) {return -1; "> เรียงลำดับรายการด้วยตัวเปรียบเทียบแบบกำหนดเองโดยการเขียนคลาสที่ใช้อินเทอร์เฟซการเปรียบเทียบและส่งผ่านไปยังอินสแตนซ์เป็นอาร์กิวเมนต์การสั่งซื้อคลาสที่ใช้ตัวเปรียบเทียบนั้น "GreaterThan คลาสสาธารณะใช้ตัวเปรียบเทียบอื่นหาก (x == y) {return 0;} else {return 1;}}}"
-
ใช้การเรียกไปยัง Collections.sort โดยส่งผ่านอินสแตนซ์ใหม่ของ GreaterThan เป็นอาร์กิวเมนต์ที่สอง เนื่องจากวัตถุที่มีขนาดใหญ่กว่าจะอยู่ข้างหน้าวัตถุอื่น ๆ รายการจะถูกเรียงลำดับจากมากไปน้อยแทนที่จะเรียงลำดับจากน้อยไปหามาก อีกทางเลือกหนึ่งถ้าคุณเรียงลำดับรายการวัตถุจากคลาสแบบกำหนดเองที่คุณพิมพ์ด้วยตัวเองคลาสนี้สามารถใช้อินเทอร์เฟซที่เปรียบเทียบได้แทนการใช้คลาส Comparator ที่แยกต่างหาก "" Collections.sort (รายการใหม่ GreaterThan ()); ""
จัดเรียงโดยใช้การเปรียบเทียบเริ่มต้นและการกำหนดเอง
เคล็ดลับ
- มันเป็นปัญหาที่จะใช้จำนวนเต็มเพื่อวนในวงจรและวิธีการ List.size () การวนซ้ำรายการที่ปิดคือการดำเนินการคำนวณที่มีราคาแพง เมื่อใช้โอเปอเรเตอร์ดัชนี (เช่น l [2]) ในคำสั่งใด ๆ จาวาจะต้องวนซ้ำรายการจนกว่าจะถึงดัชนี 2 สำหรับรายการขนาดเล็กนี่เป็นปัญหาอย่างไรก็ตามมีบางอย่างที่ยิ่งใหญ่ การใช้ตัวดำเนินการดัชนีเพื่อทำซ้ำจะกลายเป็นสิ่งที่ต้องใช้ทรัพยากรจำนวนมาก
- ไม่ว่าวัตถุ List จะถูกนำมาใช้อย่างไรเนื่องจาก LinkedList ใช้อินเทอร์เฟซเดียวกัน
- วิธีการเปรียบเทียบควรกลับไปที่ -1 หาก arg0 ถูกสั่งก่อน arg1, 0 ถ้ามันถูกสั่งเท่า ๆ กันและ 1 ถ้า arg1 ถูกสั่งก่อน arg0
การเตือน
- วัตถุตัววนซ้ำทำให้แน่ใจว่าแต่ละโหนดในรายการเข้าชมเพียงครั้งเดียว สิ่งนี้เป็นสิ่งสำคัญที่ต้องจำไว้ตั้งแต่เข้ามาเยี่ยมเราโดยไม่จำเป็นต้องใช้โครงสร้างข้อมูลไปในทางที่ผิดที่โปรแกรมทำงานผิดปกติ