Annak ellenőrzése, hogy a tömb rendezve van-e Java-ban

1. Áttekintés

Ebben az oktatóanyagban különféle módokat fogunk megnézni annak ellenőrzésére, hogy egy tömb rendezve van-e.

Mielőtt elkezdené, érdekes lenne megvizsgálni, hogyan rendezhetők tömbök a Java-ban.

2. Hurokkal

Az ellenőrzés egyik módja a mert hurok. Tudunk iterálja a tömb összes értékét egyenként.

Nézzük meg, hogyan kell csinálni.

2.1. Primitív tömb

Egyszerűen fogalmazva: az összes pozíciót iteráljuk, az utolsó kivételével. Ez azért van, mert összehasonlítani fogjuk az egyik pozíciót a következővel.

Ha némelyiket nem rendezik, akkor a módszer visszatér hamis. Ha egyik összehasonlítás sem tér vissza hamis, ez azt jelenti, hogy egy tömb rendezve van:

logikai isSorted (int [] tömb) {for (int i = 0; i tömb [i + 1]) hamis értéket ad vissza; } return true; }

2.2. A megvalósítandó objektumok Hasonló

Valami hasonlót tehetünk a megvalósító objektumokkal Hasonló. Ahelyett, hogy nagyobb, mint előjelet használna, használjuk összehasonlítani:

logikai isSorted (Összehasonlítható [] tömb) {for (int i = 0; i 0) hamis értéket ad vissza; } return true; }

2.3. Objektumok, amelyek nem valósulnak meg Hasonló

De mi van, ha objektumaink nem valósulnak meg Hasonló? Ebben az esetben tehetünk helyette hozzon létre egy Összehasonlító.

Ebben a példában a Munkavállaló tárgy. Ez egy egyszerű POJO, három mezővel:

public class Alkalmazott megvalósítja a Serializable {private int id; privát karakterlánc neve; privát int kor; // szerelők és beállítók}

Ezután meg kell választanunk, hogy melyik mezőt szeretnénk megrendelni. Itt rendeljünk a kor terület:

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

És akkor megváltoztathatjuk a módszerünket, hogy a Összehasonlító:

logikai isSorted (Object [] tömb, Comparator Comparator) {for (int i = 0; i 0) hamis értéket ad vissza; } return true; }

3. Rekurzív módon

Természetesen használhatunk rekurziót is. Az ötlet az, hogy ellenőrizzük a tömb két pozícióját, majd ismétlődünk, amíg minden pozíciót meg nem ellenőrizünk.

3.1. Primitív tömb

Ebben a módszerben ellenőrizzük az utolsó két pozíciót. Ha rendezik őket, akkor újra meghívjuk a módszert, de egy korábbi pozícióval. Ha ezen pozíciók egyikét nem rendezi, akkor a módszer visszatér hamis:

logikai isSorted (int [] tömb, int hossz) hosszúság tömb [hossz - 1]) visszaadja hamis; return isSorted (tömb, hossz - 1); 

3.2. A megvalósítandó objektumok Hasonló

Most nézzük megint azokat az objektumokat, amelyek megvalósulnak Hasonló. Meglátjuk ugyanezt a megközelítést összehasonlítani működni fog:

logikai isSorted (Összehasonlítható [] tömb, int hossz) 

3.3. Olyan objektumok, amelyek nem valósulnak meg Hasonló

Az utóbbi időben próbáljuk ki Munkavállaló újból objektum, hozzáadva a Összehasonlító paraméter:

logikai isSorted (Object [] tömb, Comparator összehasonlító, int hossz) if (tömb == null 

4. Következtetés

Ebben az oktatóanyagban láthattuk, hogyan lehet ellenőrizni, hogy egy tömb rendezve van-e vagy sem. Iteratív és rekurzív megoldásokat egyaránt láttunk.

Javaslatunk a loop megoldás használata. Tisztább és könnyebben olvasható.

Szokás szerint az oktatóanyag forráskódja megtalálható a GitHubon.


$config[zx-auto] not found$config[zx-overlay] not found