วิธีจัดเรียง 2d Array ใน Java

Withi Cad Reiyng 2d Array Ni Java



อาร์เรย์สองมิติหรือ 2 มิติคือชุดของคอลัมน์และแถว โปรแกรมเมอร์สามารถสุ่มเข้าถึงองค์ประกอบอาร์เรย์ 2 มิติหรือแต่ละเซลล์แยกกันได้โดยใช้ดัชนี ด้วยความช่วยเหลือของการเรียงลำดับ องค์ประกอบอาร์เรย์จะถูกจัดเรียงตามความต้องการ ไม่ว่าจะเรียงลำดับจากน้อยไปมากหรือมากไปหาน้อย โดยเฉพาะอย่างยิ่ง Java “ Array.sort() ” สามารถใช้สำหรับองค์ประกอบของอาร์เรย์ 2 มิติภายในโปรแกรม

บทช่วยสอนนี้จะกล่าวถึงวิธีการจัดเรียงอาร์เรย์ 2 มิติใน Java

จะจัดเรียง 2D Array ใน Java ได้อย่างไร?

ใน Java คุณสามารถจัดเรียงอาร์เรย์ 2D โดยใช้:







ตอนนี้เราจะพูดถึงแต่ละวิธีที่กล่าวถึงทีละรายการ



วิธีที่ 1: การเรียงลำดับแถวของ 2D Array ใน Java

ในการเรียงลำดับแถวคุณสามารถใช้ “ Array.sort() ” วิธีการจัดเรียงองค์ประกอบอาร์เรย์ มันวนซ้ำแต่ละองค์ประกอบของแถวที่ระบุและสลับจำนวนเต็มเมื่อองค์ประกอบปัจจุบันมีค่ามากกว่าถัดไป



มาดูตัวอย่างเพื่อทำความเข้าใจด้านการใช้งาน





ตัวอย่าง
ในตัวอย่างนี้ ขั้นแรกเราจะสร้างวิธีการแบบคงที่ “ rowWiseSorting() ” เพื่อเรียงลำดับอาร์เรย์จากน้อยไปมากโดยเรียก “ Arrays.sort() ” ของคลาส Arrays แล้วพิมพ์องค์ประกอบที่เรียงลำดับของอาร์เรย์โดยใช้ “ สำหรับ ” ลูป:

คงที่ int rowWiseSorting ( int arr [ ] [ ] ) {
สำหรับ ( 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() ” ด้วยวิธีการ “ อินเทอร์เฟซตัวเปรียบเทียบ ” เพื่อเปรียบเทียบค่าของคอลัมน์ สุดท้าย เราจะพิมพ์ค่าของคอลัมน์ที่จัดเรียงของอาร์เรย์โดยใช้ ' สำหรับ ” ลูป:

คงที่ โมฆะ คอลัมน์WiseSorting ( int arr [ ] [ ] , int ภาพรวม ) {
อาร์เรย์ เรียงลำดับ ( 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 พร้อมตัวอย่าง