วิธีการ Stream.sorted() ใน Java คืออะไร

Withi Kar Stream Sorted Ni Java Khux Xari



ใน Java อาจมีบางกรณีที่โปรแกรมเมอร์จำเป็นต้องจัดเรียงรายการตามข้อกำหนด ตัวอย่างเช่น การดึงค่าที่ไม่เรียงลำดับหรือสร้างขึ้นแบบสุ่มในลักษณะเฉพาะ (จากน้อยไปหามากหรือมากไปหาน้อย) ในสถานการณ์ดังกล่าว “ Stream.sorted() ” วิธีการช่วยจัดเรียงข้อมูลอย่างมีประสิทธิภาพที่ส่วนท้ายของผู้พัฒนา

บทความนี้จะกล่าวถึงรายละเอียดเกี่ยวกับการใช้และการปรับใช้เมธอด “Stream.sorted()” ใน Java







วิธีการ “Stream.sorted()” ใน Java คืออะไร

Stream.sorted() ” วิธีการสอดคล้องกับ “ ลำธาร ' อินเตอร์เฟซ. วิธีการนี้ให้สตรีมที่เรียงลำดับโดยไม่ส่งผลกระทบต่อการสั่งซื้อองค์ประกอบ/รายการในสตรีมดั้งเดิม



ไวยากรณ์



กรณีที่ 1: ไม่มีพารามิเตอร์





stream.sorted ( )

กรณีที่ 2: ด้วยพารามิเตอร์



stream.sorted ( คอมพ์ )

ในไวยากรณ์นี้ “ คอมพ์ ” หมายถึงตัวเปรียบเทียบที่จะทำการเรียงลำดับ

ก่อนดำเนินการตามตัวอย่าง ตรวจสอบให้แน่ใจว่าได้รวมแพ็คเกจต่อไปนี้ แพ็คเกจนี้ประกอบด้วยคลาส อินเทอร์เฟซ ฯลฯ เพื่ออนุญาตให้ดำเนินการในลักษณะการทำงานกับองค์ประกอบ:

นำเข้า java.util.stream * ;

ตัวอย่างที่ 1: การใช้เมธอด “Stream.sorted()” เพื่อจัดเรียง (จากน้อยไปหามาก) จำนวนเต็มใน Java

Stream.of() ” วิธีการใช้เพื่อสร้างกระแสลำดับสำหรับองค์ประกอบที่กำหนด ในตัวอย่างนี้ สามารถใช้วิธีนี้รวมกับ “ Stream.sorted() ” วิธีการจัดเรียงกระแสจำนวนเต็มในลักษณะจากน้อยไปหามาก:

จัดเรียงชั้นเรียนสาธารณะ {
โมฆะสาธารณะคงหลัก ( สตริง [ ] หาเรื่อง ) {
ลำธาร < จำนวนเต็ม > sortStream1 = Stream.of ( 2 , 4 , 3 , 5 , 1 ) ;
ลำธาร < จำนวนเต็ม > sortStream2 = Stream.of ( 9 , 6 , 7 , 8 , 10 ) ;
System.out.println ( 'สตรีมแรกคือ: ' ) ;
sortStream1.เรียงลำดับ ( ) .แต่ละ ( System.out::println ) ;
System.out.println ( ' \n สตรีมที่สองคือ: ' ) ;
sortStream2.sorted ( ( ก ข ) - > ปริญญาตรี ) .แต่ละ ( System.out::println ) ;
} }

ในข้อมูลโค้ดนี้:

  • สร้างกระแสข้อมูลจำนวนเต็มที่แตกต่างกันสองกระแสผ่านทาง “ ของ() ' วิธี.
  • หลังจากนั้นเชื่อมโยง “ เรียงลำดับ () ” วิธีการกับสตรีมเดิมที่สร้างขึ้นเพื่อจัดเรียงสตรีมใน “ จากน้อยไปมาก ' คำสั่ง.
  • ตอนนี้ ใช้ “ เรียงลำดับ () ” วิธีการอีกครั้งกับสตรีมหลังเพื่อส่งคืนสตรีมใน “ จากมากไปน้อย ” เรียงลำดับตามตัวเปรียบเทียบที่กำหนด เช่น “ ปริญญาตรี '.
  • สุดท้าย แสดงสตรีมจำนวนเต็มที่เรียงลำดับในทั้งสองกรณีบนคอนโซล

เอาต์พุต

ในเอาต์พุตนี้ สังเกตได้ว่าทั้งสองสตรีมจะถูกจัดเรียงตามนั้น

ก่อนไปที่ตัวอย่างถัดไป ให้รวมตัวอย่างด้านล่างเพื่อเข้าถึงคลาสและเมธอดทั้งหมด:

นำเข้า java.util * ;

ตัวอย่างที่ 2: การใช้เมธอด “Stream.sorted()” เพื่อจัดเรียงคลาสอ็อบเจกต์

ในตัวอย่างนี้ วิธีการที่กล่าวถึงสามารถนำไปใช้กับวัตถุคลาสเพื่อเรียงลำดับค่าที่ส่งผ่าน:

ข้อมูลคลาส {
นานาชาติ รหัส ;
ชื่อสตริง;
ข้อมูล ( นานาชาติ รหัส ,ชื่อสตริง ) {
this.id = รหัส ;
this.name = ชื่อ;
}
สตริงสาธารณะ toString ( ) {
กลับ 'id=' + this.id
+ ', ชื่อ=' + ชื่อนี้;
} }
คลาสสตรีมเรียง {
โมฆะสาธารณะคงหลัก ( สตริง [ ] หาเรื่อง ) {
รายการ < ข้อมูล > รายการ = ArrayList ใหม่ < ข้อมูล > ( ) ;
รายการ.เพิ่ม ( ข้อมูลใหม่ ( 2 , 'แฮร์รี่' ) ) ;
รายการ.เพิ่ม ( ข้อมูลใหม่ ( 1 , 'เดวิด' ) ) ;
รายการ.เพิ่ม ( ข้อมูลใหม่ ( 3 , 'ทอม' ) ) ;
ลำธาร < ข้อมูล > stream = list.สตรีม ( ) ;
stream.sorted ( ( e1, e2 ) - > e1.id - e2.id ) .แต่ละ ( System.out::println ) ;
} }

ในโค้ดบรรทัดเหล่านี้ ให้ทำตามขั้นตอนต่อไปนี้:

  • ประการแรก ประกาศคลาสชื่อ “ ข้อมูล '.
  • ในคำจำกัดความ ให้ระบุตัวแปรที่ระบุ
  • ในขั้นตอนถัดไป รวมตัวสร้างคลาสแบบกำหนดพารามิเตอร์ที่มีพารามิเตอร์เหมือนกับตัวแปรที่ระบุ
  • ในนิยามคอนสตรัคเตอร์ ให้อ้างถึงตัวแปรที่ระบุ และจัดสรรค่าอาร์กิวเมนต์ที่ส่งผ่านผ่าน “ นี้ '.
  • ตอนนี้แทนที่ ' toString() ” วิธีการคืนค่าที่ผ่านไป
  • ใน ' หลัก() ” วิธีการ สร้างรายการของคลาสวัตถุและเพิ่มค่าผ่านที่ระบุไว้ในรายการผ่านทางที่เกี่ยวข้อง “ เพิ่ม() ' วิธี.
  • หลังจากนั้นดึงสตรีมจากรายการผ่าน “ ลำธาร() ' วิธี.
  • นอกจากนี้ ให้ใช้ “ เรียงลำดับ () ” วิธีการกับตัวเปรียบเทียบที่ระบุซึ่งเปรียบเทียบสองวัตถุตาม “ รหัส ” ใน “ จากน้อยไปมาก ' มารยาท.
  • สุดท้าย ใช้ “ แต่ละ() ” วิธีการบันทึกสตรีมวัตถุที่เรียงลำดับบนคอนโซล

เอาต์พุต

จากผลลัพธ์นี้สามารถวิเคราะห์ได้ว่ามีการเรียงลำดับค่าวัตถุอย่างเหมาะสม

บทสรุป

Stream.sorted() ” เป็นวิธีการที่สอดคล้องกับ “ ลำธาร ” อินเตอร์เฟสที่ให้สตรีมที่เรียงลำดับโดยไม่ส่งผลกระทบต่อรายการ/องค์ประกอบที่สั่งซื้อในสตรีมดั้งเดิม วิธีนี้จัดเรียงองค์ประกอบด้วยวิธีเริ่มต้นและตามตัวเปรียบเทียบที่ระบุ บล็อกนี้กล่าวถึงการใช้และการปรับใช้เมธอด “Stream.sorted()” ใน Java