Memeriksa Adakah Array Disusun di Jawa

1. Gambaran keseluruhan

Dalam tutorial ini, kita akan melihat pelbagai cara untuk memeriksa apakah array disusun.

Sebelum memulakan, bagaimanapun, akan menarik untuk memeriksa bagaimana menyusun susunan di Java.

2. Dengan Gelung

Salah satu cara untuk memeriksa adalah dengan gelung untuk . Kita dapat mengulangi semua nilai array satu persatu.

Mari lihat bagaimana melakukannya.

2.1. Array Primitif

Ringkasnya, kami akan melakukan iterasi pada semua posisi tetapi yang terakhir. Ini kerana kita akan membandingkan satu kedudukan dengan yang berikutnya.

Sekiranya sebilangan daripadanya tidak disusun, kaedah akan kembali salah. Sekiranya tidak ada perbandingan yang salah, ini bermaksud bahawa array disusun:

boolean isSorted(int[] array) { for (int i = 0; i  array[i + 1]) return false; } return true; }

2.2. Objek Yang Melaksanakan Sebanding

Kita boleh melakukan sesuatu yang serupa dengan objek yang melaksanakan Sebanding. Daripada menggunakan tanda lebih besar daripada, kami akan menggunakan membandingkanTo :

boolean isSorted(Comparable[] array) { for (int i = 0; i  0) return false; } return true; }

2.3. Objek yang Tidak Melaksanakan Sebanding

Tetapi, bagaimana jika objek kita tidak melaksanakan Sebanding ? Dalam kes ini, kita boleh membuat Comparator.

Dalam contoh ini, kita akan menggunakan objek Pekerja . Ini POJO ringkas dengan tiga bidang:

public class Employee implements Serializable { private int id; private String name; private int age; // getters and setters }

Kemudian, kita perlu memilih bidang mana yang ingin kita pesan. Di sini, mari pesan mengikut bidang umur :

Comparator byAge = Comparator.comparingInt(Employee::getAge);

Dan kemudian, kita boleh mengubah kaedah kita untuk mengambil Perbandingan :

boolean isSorted(Object[] array, Comparator comparator) { for (int i = 0; i  0) return false; } return true; }

3. Secara berulang

Kita tentu saja boleh menggunakan rekursi. Ideanya di sini adalah kita akan memeriksa dua kedudukan dalam array dan kemudian berulang sehingga kita memeriksa setiap kedudukan.

3.1. Array Primitif

Dalam kaedah ini, kami memeriksa dua kedudukan terakhir. Sekiranya ia disusun, kami akan memanggil kaedah itu lagi tetapi dengan kedudukan sebelumnya. Sekiranya salah satu daripada kedudukan ini tidak disusun, kaedahnya akan kembali salah:

boolean isSorted(int[] array, int length)  length  array[length - 1]) return false; return isSorted(array, length - 1); 

3.2. Objek Yang Melaksanakan Sebanding

Sekarang, mari kita lihat lagi sebagai objek yang melaksanakan Sebanding. Kami akan melihat bahawa pendekatan yang sama dengan membandingkanTo akan berfungsi:

boolean isSorted(Comparable[] array, int length) 

3.3. Objek yang Tidak Melaksanakan Sebanding

Akhir-akhir ini, mari kita cuba objek Karyawan kita lagi, menambahkan parameter Perbandingan :

boolean isSorted(Object[] array, Comparator comparator, int length)  if (array == null 

4. Kesimpulan

Dalam tutorial ini, kami telah melihat bagaimana untuk memeriksa apakah array disusun atau tidak. Kami melihat penyelesaian berulang dan berulang.

Cadangan kami adalah menggunakan penyelesaian gelung. Ia lebih bersih dan senang dibaca.

Seperti biasa, kod sumber dari tutorial ini boleh didapati di GitHub.