Java’da Diziler (Tek Boyutlu Diziler) Ders 1

Öncelikle diziler neydi ? Diziler emekti…Yok tamam diziler birden fazla veri yi sıralı bir şekilde tutmak için kullanılır.Tek boyutlu ve iki boyutlu yani matrisler olarakta bilenen dizi türleride vardır.Biz burada tek boyutlu dizler ile başlayıp dizilerin içinden geçicez 🙂 Diziler konusu biraz uzun olucak o yüzden kahveleri hazırlayalım.

DİZİ KAVRAMINI TANIYALIM?

Burada dikkat edilmesi gerken şey dizinin veri tipidir.İnt degerlerine sahip bir dizi tanımladığımızda İnt degerinde baska bir veri giremeyiz mesela isim giremeyiz.Dizilerin var olması için öncelikte bellekte yer kaplaması gerekir.Bir dizi tanımladığımızda onun maximum kaç adet deger alacağını belirleyebiliriz.Aslında belirlemek zorunda da değiliz çünkü toplu verilerin kaç adet olacağını her zaman bilemeyiz.İşte kaç adet veriye sahip olacaksa bellekte o kadar yer ayırırız kendine.Eğer diziye bir eleman sayısı belirtmezsek bellekte boş bir şekilde tanım olarak durur ama içine kaç adet veri gelirse o kadar boyutta yer kaplar .

İNDEX KAVRAMI

Diziler verileri bellekte tutarken bir ıd değeri ile tutar ve o şekilde ulaşır.işte biz id degerine İNDEX diyoruz.Diziler index değerine göre bellekte veriyi saklar . Dizimin ilk elemanı 0. index degerimdir.Görsele baktığımızda 0. index degerine ait value 40 değerimdir.1. index ise 55 degerine sahiptir.Yani diziler bizim gibi saymaya 1’den başlamazlar 0’dan başlarlar 🙂 Biz aslına dizinin 1. elemanı derken 0. index üzerinde bulunan değeri yani 40 değerine işaret ederiz.O yüzden ifade ederken 1. eleman degil index değerine göre ifade etmek daha doğrudur.Bazı index özelliklerine bakalım.

  • İndexler negatif olamaz ve değeri en 1 olmalıdır.
  • Dizi tanımlarken eleman sayısı verilir index tanımlanmaz

DİZİ TANIMLAMASI

Gördüğüz gibi bir çok farklı şekilde dizi tanımlayabilrim.Burada dikkat etmeniz gereken şey diziyi tanımlarken eğer new komutu kullanmak şuan bellekte yaşamaz.New kullanırsak bellekte bir yer tutması için referans veriyoruz ve bellekte yaşayan bir dizim oluyor .Dizi2 şeklinde de tanımlarsam aslında bir fark yok ama sadece bellekte yer edinmiyor öyle boş bir şekilde duruyor.Genel olarak şöyle özetleyelim aşağıda gördüğünüz tüm tanımlalamar tek boyutlu dizi anlamına gelir diğer anlamıyla vektör dizi türleride diyebilrim.

Dizi Elemanları

benimdizi isimli dizimi tanımladım ve new komutu kullanmadım ve eleman sayısı belirtmedim böyle bir zorunluluk yok .şimdi bunu çok takmayın 🙂 benimdizi isimli dizime elemanlarımı atadım.

Şimdi bir de mydizi isimli başka bir dizi tanımladım.Mydizi’de ise hem new komutu kullandım hem de dizimin Max eleman sayısı belirttim.

Mydizi[0] ile 0. indexe 31 degerini atadım.

  1. indexe 12
  2. indexe 21 degerini atadım ve dizi elemanlarını ekrana bastım.

Dizim 3 elemanlıydı yani index degerim 0-1-2 olarak var. 3. indexe değer atamaya çalışalım.Atayamazsın çünkü sen bu diziyi tanımlarken Max 3 elemanlı olarak tanımladık 3. index 4. eleman demek fakat böyle bişi yok 🙂

DİZİLER İLE DÖNGÜLER

Şimdi basit döngüler ile dizi elemanlarına erişebilirim veya ekrana basabilirim elemanların içinde değişiklikte yapabilirim.

Bu örnekte 5 kere çalışan bir döngü yaptım.Döngü her seferinde sayidizim[i] yani i nin degeri ne ise git bize dizi içinde o indesin karşılığında gelen veriyi ekran bas dedik.

Örnek 2:Dizi Uzunlugu

Yine benzer bir for döngüsü burada ki fark döngümün kaç kere tekrar yapacağını biz değil dizimin eleman sayısı belirler.Length burada dizimin eleman sayısına ait int tipinde bir değer döndürüyor bize.Şimdi bir burada ki dizimide eleman sayısını biliyoruz fakat eleman sayısını bilemediğimiz bir dizi yapısına baktığımızda length kullanımını daha iyi kavrayacaksınız.

Diziye Otomatik Değer Aktarımı

Dizilere otomatik olarak değer aktarmanın bir çok farklı yöntemi var .Biz burada bazı kütüphaneleri tanıyacağız.

java.util.Arrays kütüphaneyi projemize import ediyoruz.Dizilerde kullanmak üzere bazı fonksiyonlar için bu kütüphaneyi ekledim.İleride bu kütüphaneyi daha ayrıntılı bakarız.

java.util.concurrent.ThreadLocalRandom random sayı üretmek içinde bu kütüphaneyi seçim.Bunuda ekledim projemize.

Örneğe Bakalım:

  • 10 elemanlı bir dizi tanımladım.
  • for döngüsü ile 10 kere işlem yapılcak şekilde döngü kurdum.
  • Döngü her seferinde rndsayi isimle değişkenime 10 ile 50 arasından bir sayı ataycak.
  • Array.fill ise 2 adet parametre aldı ilk olarak hangi dizide işlem yapıcaksa onu seçtim ardından rndsayi parametresini girdim.
  • Array fill ile 0. index üzerinden başlayarak verileri girmiş oldu.
  • Sonra ekranı tüm elemanları bastım.


DİZİYE MANUEL ELEMAN GİRELİM

Scanner ile şimdi dizimize klavyeden eleman girelim.Örneğimize adım adım bakalım.

  • 5 elemanlı bir dizi tanımladım ve dizi uzunluğu kadar veri sayi istedim.Ardından For döngüsü ile dizimin uzunluğu kadar tekrarlamasını istedim.
  • Döngüm her seferinde i nin değeri kaç ise dizinin o index değerine gidecek ve klavyeden girilen Int degeri o indexe atayacak.
  • Döngüden çıktıktan sonra dizi elemanlarını tümüne Array To String ile ekrana bastım
java.util.Arrays kütüphanesini kullanarak Array to String ile direk dizi elemanların ekran bastım bilginize.

Leave a Reply

*