บทช่วยสอนนี้จะกล่าวถึงวิธีการจัดเรียงอาร์เรย์ 2 มิติใน Java
จะจัดเรียง 2D Array ใน Java ได้อย่างไร?
ใน Java คุณสามารถจัดเรียงอาร์เรย์ 2D โดยใช้:
ตอนนี้เราจะพูดถึงแต่ละวิธีที่กล่าวถึงทีละรายการ
วิธีที่ 1: การเรียงลำดับแถวของ 2D Array ใน Java
ในการเรียงลำดับแถวคุณสามารถใช้ “ Array.sort() ” วิธีการจัดเรียงองค์ประกอบอาร์เรย์ มันวนซ้ำแต่ละองค์ประกอบของแถวที่ระบุและสลับจำนวนเต็มเมื่อองค์ประกอบปัจจุบันมีค่ามากกว่าถัดไป
มาดูตัวอย่างเพื่อทำความเข้าใจด้านการใช้งาน
ตัวอย่าง
ในตัวอย่างนี้ ขั้นแรกเราจะสร้างวิธีการแบบคงที่ “ rowWiseSorting() ” เพื่อเรียงลำดับอาร์เรย์จากน้อยไปมากโดยเรียก “ Arrays.sort() ” ของคลาส Arrays แล้วพิมพ์องค์ประกอบที่เรียงลำดับของอาร์เรย์โดยใช้ “ สำหรับ ” ลูป:
สำหรับ ( int ผม = 0 ; ผม < ร. ความยาว ; ผม ++ ) {
อาร์เรย์ เรียงลำดับ ( arr [ ผม ] ) ;
}
สำหรับ ( int ผม = 0 ; ผม < ร. ความยาว ; ผม ++ ) {
สำหรับ ( int เจ = 0 ; เจ < arr [ ผม ] . ความยาว ; เจ ++ ) {
ระบบ. ออก . พิมพ์ ( arr [ ผม ] [ เจ ] + ' ' ) ;
}
ระบบ. ออก . println ( ) ;
}
กลับ 0 ;
}
ที่นี่เรามีอาร์เรย์ 2D ชื่อ ' arr ” ของรูปแบบเมทริกซ์ 3×3 (สามแถวและสามคอลัมน์) ทีนี้ ในการเรียงลำดับแถวของอาร์เรย์ที่สร้างขึ้น เราจะเรียกเมธอด “ rowWiseSorting() ” โดยส่งอาร์เรย์เป็นอาร์กิวเมนต์ในเมธอด main() :
สาธารณะ คงที่ โมฆะ หลัก ( สตริง [ ] args ) {
int arr [ ] [ ] = ใหม่ int [ ] [ ] {
{ 12 , 14 , 4 } ,
{ 14 , 23 , ยี่สิบ } ,
{ 28 , 25 , 8 } ,
{ สิบเอ็ด , 5 , 1 } } ;
rowWiseSorting ( arr ) ;
}
}
อย่างที่คุณเห็น เราได้จัดเรียงอาร์เรย์ของเราตามลำดับจากน้อยไปมาก:
ต้องการลองใช้การเรียงลำดับคอลัมน์ใน Java หรือไม่? ลองดูที่ส่วนต่อไปนี้
วิธีที่ 2: การเรียงลำดับคอลัมน์ 2D Array ใน Java
หากต้องการจัดเรียง 2D Array ใน Java แบบคอลัมน์ให้เรียก ' Arrays.sort() ” ด้วยวิธีการ “ อินเทอร์เฟซตัวเปรียบเทียบ ” อินเทอร์เฟซตัวเปรียบเทียบกำหนด ' เปรียบเทียบ() ” วิธีที่รับพารามิเตอร์สองตัวแล้วเปรียบเทียบกัน หากพารามิเตอร์ที่ส่งผ่านมีค่าเท่ากัน จะส่งกลับค่าศูนย์ ถ้าพารามิเตอร์ที่ 1 มากกว่าพารามิเตอร์ตัวที่ 2 จะส่งกลับค่าบวก ถ้าไม่เช่นนั้น ค่าลบจะถูกส่งกลับ
ตัวอย่าง
ในตัวอย่างนี้ เราจะสร้าง method ชื่อ “ คอลัมน์WiseSorting() ” ด้วยสองอาร์กิวเมนต์ อาร์เรย์ 2 มิติ “ อาร์[][] ” และหมายเลขคอลัมน์ชื่อ “ ภาพรวม ” จากนั้นโทรไปที่ “ Arrays.sort() ” ด้วยวิธีการ “ อินเทอร์เฟซตัวเปรียบเทียบ ” เพื่อเปรียบเทียบค่าของคอลัมน์ สุดท้าย เราจะพิมพ์ค่าของคอลัมน์ที่จัดเรียงของอาร์เรย์โดยใช้ ' สำหรับ ” ลูป:
อาร์เรย์ เรียงลำดับ ( arr , ใหม่ เครื่องเปรียบเทียบ < int [ ] > ( ) {
สาธารณะ int เปรียบเทียบ ( int [ ] frst , int [ ] scnd ) {
ถ้า ( frst [ ภาพรวม - 1 ] > scnd [ ภาพรวม - 1 ] ) {
กลับ 1 ;
}
อื่น กลับ - 1 ;
}
} ) ;
}
สำหรับ ( int ผม = 0 ; ผม < ร. ความยาว ; ผม ++ ) {
สำหรับ ( int เจ = 0 ; เจ < arr [ ผม ] . ความยาว ; เจ ++ ) {
ระบบ. ออก . พิมพ์ ( arr [ ผม ] [ เจ ] + ' ' ) ;
}
ระบบ. ออก . println ( ) ;
}
เราจะใช้อาร์เรย์ที่สร้างไว้แล้วชื่อ “ arr ” และส่งต่อไปยัง “ คอลัมน์WiseSorting() ” เป็นพารามิเตอร์แรกและ “ 1 ” เป็นพารามิเตอร์ที่สอง:
คอลัมน์WiseSorting ( arr , 1 ) ;
การทำงานของโปรแกรมที่ให้มาข้างต้นจะเรียงลำดับคอลัมน์แรกของอาร์เรย์ 2 มิติของเรา:
เรารวบรวมข้อมูลที่จำเป็นทั้งหมดเพื่อจัดเรียงอาร์เรย์ 2 มิติใน Java
บทสรุป
ใน Java อาร์เรย์ 2 มิติสามารถจัดเรียงแบบแถวหรือแบบคอลัมน์ได้ตามความต้องการ สำหรับการเรียงลำดับแถวจะใช้วิธี Array.sort() เท่านั้น อย่างไรก็ตาม ในการเรียงลำดับตามคอลัมน์ วิธีการ Array.sort() จะถูกเรียกด้วยอินเทอร์เฟซตัวเปรียบเทียบ สำหรับการเรียงลำดับแถวจะไม่มีการส่งพารามิเตอร์ไปยังเมธอด Array.sort() ในขณะที่ในวิธีการจัดเรียงแบบคอลัมน์ จำนวนคอลัมน์ที่ต้องจัดเรียงจะถูกกล่าวถึงเป็นพารามิเตอร์ บทช่วยสอนนี้กล่าวถึงวิธีการจัดเรียงอาร์เรย์ 2 มิติใน Java พร้อมตัวอย่าง