/Java’da liste içinde arama nasıl yapılır?

Java’da liste içinde arama nasıl yapılır?

Arkadaşlar merhabalar.

Bu içerikte size kısaca liste içerisinde arama yapma işlemini göstermeye çalışacağım. Öncelikle belirtmeliyim ki bu işlemi birde fazla yöntem ile yapmanız mümkün ancak ben Java diline Python’ın ardından geçiş yaptığım için anlatacağım yöntem bana daha basit ve etkili gelmekte. Arama işlemini yapmış olduğum örnek bir dosya ile göstermek istiyorum.

package com.degiskenler.degiskenler;

import java.util.Scanner;

public class PlakaFor {
    public static void main(String args[]){

        String illeri [] = new String[81];

        illeri[0]="Adana";
        illeri[1]="Adıyaman";
        illeri[2]="Afyon";
        illeri[3]="Ağrı";
        illeri[4]="Amasya";
        illeri[5]="Ankara";
        illeri[6]="Antalya";
        illeri[7]="Artvin";
        illeri[8]="Aydın";
        illeri[9]="Balıkesir";
        illeri[10]="Bilecik";
        illeri[11]="Bingöl";
        illeri[12]="Bitlis";
        illeri[13]="Bolu";
        illeri[14]="Burdur";
        illeri[15]="Bursa";
        illeri[16]="Çanakkale";
        illeri[17]="Çankırı";
        illeri[18]="Çorum";
        illeri[19]="Denizli";
        illeri[20]="Diyarbakır";
        illeri[21]="Edirne";
        illeri[22]="Elazığ";
        illeri[23]="Erzincan";
        illeri[24]="Erzurum";
        illeri[25]="Eskişehir";
        illeri[26]="Gaziantep";
        illeri[27]="Giresun";
        illeri[28]="Gümüşhane";
        illeri[29]="Hakkari";
        illeri[30]="Hatay";
        illeri[31]="Isparta";
        illeri[32]="İçel";
        illeri[33]="İstanbul";
        illeri[34]="İzmir";
        illeri[35]="Kars";
        illeri[36]="Kastamonu";
        illeri[37]="Kayseri";
        illeri[38]="Kırklareli";
        illeri[39]="Kırşehir";
        illeri[40]="Kocaeli";
        illeri[41]="Konya";
        illeri[42]="Kütahya";
        illeri[43]="Malatya";
        illeri[44]="Manisa";
        illeri[45]="K.Maraş";
        illeri[46]="Mardin";
        illeri[47]="Muğla";
        illeri[48]="Muş";
        illeri[49]="Nevşehir";
        illeri[50]="Niğde";
        illeri[51]="Ordu";
        illeri[52]="Rize";
        illeri[53]="Sakarya";
        illeri[54]="Samsun";
        illeri[55]="Siirt";
        illeri[56]="Sinop";
        illeri[57]="Sivas";
        illeri[58]="Tekirdağ";
        illeri[59]="Tokat";
        illeri[60]="Trabzon";
        illeri[61]="Tunceli";
        illeri[62]="Şanlıurfa";
        illeri[63]="Uşak";
        illeri[64]="Van";
        illeri[65]="Yozgat";
        illeri[66]="Zonguldak";
        illeri[67]="Aksaray";
        illeri[68]="Bayburt";
        illeri[69]="Karaman";
        illeri[70]="Kırıkkale";
        illeri[71]="Batman";
        illeri[72]="Şırnak";
        illeri[73]="Bartın";
        illeri[74]="Ardahan";
        illeri[75]="Iğdır";
        illeri[76]="Yalova";
        illeri[77]="Karabük";
        illeri[78]="Kilis";
        illeri[79]="Osmaniye";
        illeri[80]="Düzce";

        while (true){
            System.out.println("Lütfen sorgulama istediğiniz ilin plaka kodunu giriniz.");
            Scanner PlakaKontrol = new Scanner(System.in);
            int sorgu = PlakaKontrol.nextInt();
            for (int i = 0;i<illeri.length;i++){
                if (sorgu == i){
                    System.out.println("Sorguladığınız plaka kodu "+illeri[sorgu-1]+" iline aittir...");
                }
            }
        }
    }
}

Yukarıdaki örnekte kullanıcıdan alınan girdiye göre hangi plaka kodunun hangi ile ait olduğunu sonsuz bir döngü içerisinde sorgulayabiliyorsunuz.

illeri isimli listemizin içerisinde tek tek eklenmiş illeri görebiliyorsunuz. Her ile ait bir liste indeksimiz mevcut.

Aşağıdaki kod blogunda ise kullanıcıdan plaka kodunu girmesini istedik.

System.out.println("Lütfen sorgulama istediğiniz ilin plaka kodunu giriniz.");
Scanner PlakaKontrol = new Scanner(System.in);

Kullanıcıdan plaka kodunu aldığımıza ve PlakaKontrol isimli değişkenimize atadığımıza göre kullanıcının girdiği değere göre liste içerisinde arama işlemine geçebiliriz.

Arama için for döngüsünü kullanıyoruz. Standart for döngüsü yapımızı kuruyoruz ve “i” değişkenini 0’a eşitledik. Ardından da “i” nin artacağı son değeri belirliyoruz. Bu değeri liste uzunluğumuza “illeri.length ” komutu ile eşitledik ve i++ ile i değerini döngü her başa döndüğünde 1 artacak şekilde ayarladık.

Şu anda for döngüsü illeri.length uzunluğu kadar çalışacaktır. Bu uzunluk bu örnek için 81’dir. (Listeye eleman atarkan en son indeksin 0 olması liste indekinin 0’dan başlamasından kaynaklanmaktadır. ) İ değerimiz 81’e eşit olana kadar for döngüsü çalışacaktır. Bu esnada “i” değerimiz kullanıcıdan aldığımız değere eşit olduğunda (sorgu değişkeni) içerideki if koşulu çalışır ve ekrana mesajımızı yazdırır. Eğer i değeri sorgu ile işetlenemezse else blogu çalışır ve içerisindeki mesajı ekrana bastırır.

for (int i = 0;i<illeri.length;i++){
    if (sorgu == i){
        System.out.println("Sorguladığınız plaka kodu "+illeri[sorgu-1]+" iline aittir...");
    }
    else:{
        System.out.println("Aradğınız plaka kodu geçerli bir kod değildir.");
    }
}

Anlatım biraz uzunca gibi duruyor arkadaşlar ancak arama kısmı alsında toplamda 4 satır koddan oluşuyor. Örnekle yapmamın sebebi daha anlaşılır olmasını sağlamaktı. Umarım bunda da başarılı olmuşumdur.

Keyifli kodlamalar…