Son güncelleme: 09.11.2018
Bir dizi, aynı türdeki bir dizi değeri temsil eder. Bir dizi bildirmek, tek bir değer depolayan normal bir değişken bildirmekle benzerdir ve bir diziyi bildirmenin iki yolu vardır:
veri_türü dizi_adı; // veri türü dizi_adı;
Örneğin, bir sayı dizisi tanımlayalım:
İç sayılar; int sayılar2;
Diziyi bildirdikten sonra, onu başlatabiliriz:
İç sayılar; sayılar = yeni int; // 4 sayı dizisi
Dizi, şu yapı kullanılarak oluşturulur: new data_type [number_of_elements], burada new, parantez içinde belirtilen öğe sayısı için bellek ayıran bir anahtar sözcüktür. Örneğin, sayılar = yeni int; - bu ifade, dört int öğesinden oluşan bir dizi oluşturur ve her öğenin varsayılan değeri 0 olacaktır.
Bir dizi bildirirken de hemen başlatabilirsiniz:
Int sayıları = yeni int; // 4 sayı dizisi int nums2 = yeni int; // 5 sayı dizisi
Bu başlatma ile dizinin tüm elemanları varsayılan bir değere sahiptir. Sayısal türler (char dahil) için bu sayı 0, boolean için false ve diğer nesneler için null'dur. Örneğin, int için varsayılan 0'dır, bu nedenle yukarıdaki nums dizisi dört sıfır olacaktır.
Ancak, diziyi oluşturduğunuzda, dizi öğeleri için de belirli değerler ayarlayabilirsiniz:
// bu iki yöntem eşdeğerdir int sayılar = new int (1, 2, 3, 5); int sayılar2 = (1, 2, 3, 5);
Bu durumda, küme parantezleri içindeki eleman sayısı ile hesaplandığından, dizinin boyutunun köşeli parantez içinde gösterilmediğine dikkat edilmelidir.
Bir dizi oluşturduktan sonra, dizi değişkeninin adından sonra köşeli parantez içinde verilen dizine göre herhangi bir elemanına başvurabiliriz:
Int sayıları = yeni int; // dizi elemanlarının değerlerini ayarlayın nums = 1; sayılar = 2; sayılar = 4; sayılar = 100; // System.out.println (sayılar) dizisinin üçüncü öğesinin değerini alın; // 4
Dizi elemanları 0'da indekslenir, bu durumda dizideki dördüncü elemana atıfta bulunmak için nums ifadesini kullanmamız gerekir.
Ve sadece 4 eleman için tanımlanmış bir dizimiz olduğu için, örneğin altıncı elemana başvuramayız: nums = 5; ... Bunu yapmaya çalışırsak, bir hata alırız.
dizi uzunluğu
Dizilerin sahip olduğu en önemli özellik, bir dizinin uzunluğunu yani elemanlarının sayısını döndüren length özelliğidir:
Int sayılar = (1, 2, 3, 4, 5); int uzunluk = sayı.uzunluk; // 5
Son dizin genellikle bilinmez ve bir dizinin son öğesini almak için bu özelliği kullanabiliriz:
Int son = sayılar;
Çok boyutlu diziler
Daha önce, aynı türden bir zincir veya bir dizi değer olarak temsil edilebilecek tek boyutlu dizileri düşündük. Ancak tek boyutlu dizilerin yanı sıra çok boyutlu da olabilirler. En ünlü çok boyutlu dizi, iki boyutlu bir diziyi temsil eden bir tablodur:
Int nums1 = yeni int (0, 1, 2, 3, 4, 5); int sayılar2 = ((0, 1, 2), (3, 4, 5));
Görsel olarak, her iki dizi de aşağıdaki gibi temsil edilebilir:
Tek boyutlu dizi nums1
2D nums2 dizisi
nums2 dizisi iki boyutlu olduğu için basit bir tablodur. Ayrıca şu şekilde de oluşturulabilirdi: int nums2 = new int; ... Köşeli parantezlerin sayısı dizinin boyutunu gösterir. Ve parantez içindeki sayılar satır ve sütun sayısı içindir. Ayrıca indisleri kullanarak dizinin elemanlarını programda kullanabiliriz:
// ikinci satırın ilk sütununun elemanını ayarla nums2 = 44; System.out.println (sayı2);
Bir 3B dizi bildirimi şöyle görünebilir:
Int sayılar3 = yeni int;
pürüzlü dizi
Çok boyutlu diziler aynı zamanda "tırtıklı diziler" olarak da gösterilebilir. Yukarıdaki örnekte, iki boyutlu dizide 3 satır ve üç sütun vardı, bu yüzden düz bir tablo elde ettik. Ancak iki boyutlu bir dizideki her bir öğeyi, farklı sayıda öğeye sahip ayrı bir diziye atayabiliriz:
Int sayıları = yeni int; sayılar = yeni int; sayılar = yeni int; sayılar = yeni int;
her biri için
For döngüsünün özel bir sürümü, diziler ve koleksiyonlar gibi bir dizi öğe üzerinde yineleme yapmak içindir. Diğer programlama dillerinde bulunan foreach döngüsüne benzer. Resmi beyanı:
(veri_türü değişken_adı: kapsayıcı) için (// eylemler)
Örneğin:
Int dizisi = yeni int (1, 2, 3, 4, 5); for (int i: dizi) (System.out.println (i);)
Bu durumda, int türündeki bir dizi veri bir kapsayıcı görevi görür. Daha sonra int türünde bir değişken bildirilir.
Aynı şey for'nun normal sürümüyle de yapılabilirdi:
Int dizisi = yeni int (1, 2, 3, 4, 5); for (int ben = 0; ben< array.length; i++){ System.out.println(array[i]); }
Aynı zamanda, for döngüsünün bu sürümü for (int i: array) sürümünden daha esnektir. Özellikle, bu sürümde öğeleri değiştirebiliriz:
Int dizisi = yeni int (1, 2, 3, 4, 5); for (int ben = 0; ben İlk olarak, satırlar üzerinde yineleme yapmak için bir döngü oluşturulur ve ardından ilk döngü içinde, belirli bir satırın sütunları üzerinde yineleme yapmak için bir iç döngü oluşturulur. Benzer şekilde, çok sayıda boyuta sahip 3B diziler ve kümeler üzerinde yineleme yapabilirsiniz. Belki de Java dili teorisindeki son çok hoş ve ilginç olmayan, ancak çok önemli ve faydalı bir konuya başlayalım - diziler. Ayrıca, daha pratik görevler için kullanılabilecek daha ilginç ve heyecan verici materyaller olacak. Ancak Java'nın ilginç kısmına başlamak için, dilin temeli olan ve onsuz programlamayı öğrenmenin imkansız olduğu ilginç olmayanı öğrenmeniz gerekir)). Daha önce ele aldığımız tüm konular: programlamanın temelleridir. Onların çalışmasıyla başka bir programlama diline başlayacaksınız. Diziler de bu konuyla ilgilidir. Hangi konuda programlamaya başlamaya karar verirseniz verin, diziler olmadan pek yapamazsınız. Bu nedenle, programlamada başarılı olmak istiyorsanız, bu ve geçmiş malzemeye çok iyi hakim olmanızı tavsiye ederim. Şimdi dizilere geçelim. Dizi Aynı türden verileri depolamak için tasarlanmış bir veri yapısıdır. Diyelim ki 5 tamsayı değişkeni oluşturmanız ve onlara bir değer vermeniz gerekiyor. Nasıl yapacaksın? Dizileri bilmeden büyük olasılıkla şöyle yazmaya başlayacaksınız: int a = 2, b = 3, c = 5, d = 21, e = 2; Cephaneliğinizde diziler gibi bir veri türü varsa, şöyle yazabilirsiniz: int a = (2, 3, 5, 21, 2); Bu, bu verileri işlerken çok kullanışlıdır. Örneğin, şimdi her değişkene 3 eklemeniz gerekiyor.İlk bildirim yöntemini kullandıysanız, böyle bir işlem çok zamanınızı alacaktır. Dizilere sahipken ve cephaneliğimizde, monoton kodlara başvurmadan büyük miktarda veriyi işleyebiliriz. Diziyi kullanmadan önce şunları yapmanız gerekir: Bu prosedürü unutmayın ve asla ihlal etmeyin. Dizideki eleman sayısı köşeli parantez içinde belirtilir. Bu miktar yasaktır daha sonra değişecek. Dizi açıkça başlatılmazsa, oluşturulduktan sonra tümü Dizi sınırları: Bu kadar teoriden sonra, bence biraz pratik gerekiyor: genel sınıf ArraysInJava ( int intArray; // dizi bildirimi intArray = yeni int [10]; // dizi başlatma intArray [0] = 1; // dizinin ilk elemanına 1 değeri verildi intArray [1] = 2; // ikinci değer 2 intArray [6] = 7; // aldığımız dizi değerlerinin geri kalanı // hiçbir değer belirtilmemiş, varsayılan olarak 0 olacak // başlatıldığında köşeli parantez içindeki değerle eşleşir. for (int ben = 0; ben<
intArray.length
;
i++
)
{
for (int ben = 0; ben<
intArray.length
;
i++
)
{
intArray [i] = 45; // dizinin her elemanı değiştirilebilir Kodu çalıştırmanın sonucu: Dikkate aldık Java'da tek boyutlu diziler.Şimdi sıra iki boyutlu olanlara geldi. Tahmin edebileceğiniz gibi, iki boyutlu bir dizi, bir dizi dizisidir. Korkma. Her şey göründüğünden çok daha basit. int ikiDim = new int - 4'e 4 boyutunda iki boyutlu bir diziyi bu şekilde bildirebilirsiniz. Dikey olarak 4, yatay olarak 4 öğe olacaktır. Böyle bir diziye değer atamak tek boyutlu diziye değer atamak kadar basittir: TwoDim = 3. Bu kayıt, ikinci satır (indeks 0'dan başlar) ve sütundaki dizi elemanımıza atadığımız anlamına gelecektir. 3. Resimde şöyle görünecek: Bu arada, işte bazı örnek kodlar: Çok boyutlu diziler herhangi bir sayıda boyuta sahip olabilir. Bildirmek, başlatmak ve onlarla çalışmak tek boyutlu dizilerle aynıdır. Tek boyutlu ve iki boyutlu dizilerle çalışmayı öğrenirseniz, üç boyutlu ve üstü ile ilgili herhangi bir sorun olmayacaktır. Başka bir örnek. Daha doğrusu görev. Sayıları şu sırayla gösteren bir uygulama düşünmenizi ve yazmanızı istiyorum: İpucu: System.out.println (); - yeni bir satıra yazdırırken: System.out.print () - aynı satıra yazdırır. Çözüme bakmadan önce, kendiniz yazmayı deneyin. Bu, kapsanan malzemeyi büyük ölçüde güçlendirir. Ustalaşmamış olanlar için bir çözüm öneriyorum. Üzülme. Programlama zaman ve sabır ister. genel sınıf FormatMatrixPrint ( int boyut = 5; Bu, hemen hemen her programlama dilinde bulunan ve aynı türden bir grup nesneyi ortak bir ad kullanarak tanımlamanıza izin veren özel bir yapıdır. Diyelim ki beş kedili evsiz bir hayvan barınağınız var. Her birinin adını hatırlamıyorsunuz, ancak her birinin, her bir hayvanı tanımlamanıza izin veren bir numaraya sahip bir simgesi var. Bunun beş boyutlu "mühürler" dizisi olduğunu söyleyebiliriz. Lütfen indekslemenin sıfırdan başladığını unutmayın - Java'da bu şekilde yapılır. Diziler oluşturmak mümkün olmasaydı, beş değişken bildirmek ve onlara isimler bulmak gerekirdi ki bu pek uygun değildir. Java'da herhangi bir boyutta diziler oluşturabilirsiniz - tek boyutlu, iki boyutlu, üç boyutlu vb. En basit seçenekle başlayalım - tek boyutlu diziler. Tek boyutlu diziler, aynı türdeki değişkenlerin bir listesidir. Bir dizi oluşturmak için önce gerekli türde bir dizi değişkeni bildirmeniz gerekir. Tek boyutlu bir dizi bildirmenin genel biçimi aşağıdaki gibidir: DeğişkenAdı yazın; nerede parametre bir çeşit taban türü olarak da adlandırılan dizi öğesinin türünü belirtir. Köşeli parantezler bir değişkenden önce veya sonra yerleştirilebilir. Ancak daha doğru seçenek, değişkenin önünde parantezleri belirtmektir - bu şekilde tür ve parantezler aynı yerdedir, bu da ilk bakışta önünüzde böyle bir tür diziniz olduğunu anlamanıza olanak tanır. sen. Int ayGünler; çift aylık Maaşlar; Dizi bildirildiğinde, onun için henüz bir bellek ayrılmamıştır. Bir diziye bellek ayırmak için anahtar sözcüğü kullanın. yeni, bundan sonra dizi tipi tekrar belirtilir ve boyut köşeli parantez içinde: DeğişkenAdı = yeni tür [boyut]; Bir dizi, bir satırla bildirilebilir ve başlatılabilir: Int değerleri = yeni int; Bir dizi türü bildirme örneğini düşünün int bu örnekte 12 beden. satırı çalıştırdıktan sonra int ayGünleri = yeni int 12 elemanlı bir dizi oluşturuldu. Her öğeye, belirtilen tür için varsayılan bir değer atanır. tipi için int bu sıfır. Dizinin ayrı bir elemanına atıfta bulunmak için, dizinin köşeli parantez içindeki adından sonra elemanın indeksini ayarlayın. Böylece, değerini değiştirmek veya almak için dizinin bir elemanına başvurabiliriz. Genel sınıf Array1 (genel static void main (String args) (int ayDays = yeni int; ayDays = 31; ayDays = 28; ayDays = 31; ayDays = 30; ayDays = 31; ayDays = 30; ayDays = 31; ayDays = 31 ; ayDays = 30; ayDays = 31; ayDays = 30; ayDays = 31; System.out.println ("B Nisan" + ayGünleri + "günler.");)) Dizideki her bir öğenin değerlerini önceden biliyorsanız, diziyi başlatmak için bir blok kullanabilirsiniz. Onun yerine yeni int, küme parantezlerinde dizi öğelerinin değerleri virgülle ayrılmış olarak listelenir. Dizinin boyutu, derleyici tarafından belirtilen öğelerin sayısından çıkarılır. Genel sınıf Array2 (genel static void main (String args) (int ayDays = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); System.out.println ("B Nisan "+ ayGünleri +" günleri. ");)) Üçüncü bir dizi bildirimi biçimi de vardır - adsız bir dizi. İki şekilde kullanılabilir. İlk olarak - diziyi bildirdiniz ve başlattınız test sonuçları dört beden ,
ama sonra bir nedenden dolayı değiştirilmesi gerekiyor - üç öğe içermesi gerekiyor. Diziyi başlatmak için formu yeniden kullanamazsınız - bir derleme hatası olacaktır: Int testScores = (1, 2, 3, 4); ... testScores = (4, 7, 2); // Derleme Hatası Ancak, bellekte yeni bir dizi oluşturacak adsız bir dizi kullanabilirsiniz. Adsız bir dizi yazma biçimi, ilk ikisinin karışımıdır: TestScores = yeni int (4, 7, 2); Adsız bir dizi için ikinci kullanım durumu, bir diziyi bir yönteme geçirmektir. Aşağıdaki örnekte, yöntem Yazdır girdi olarak bir dizi türü kabul eder int. Bir yöntemi çağırırken, argüman olarak isimsiz bir dizi iletilebilir. Çok boyutlu diziler, dizi dizileridir. Çok boyutlu bir dizi değişkeni bildirirken, her ek dizini belirtmek için ayrı bir köşeli parantez satırı kullanılır. Örneğin: Int ikiD = yeni int; Aşağıdaki şekil, 4'e 5'lik iki boyutlu bir diziyi görsel olarak nasıl temsil edebileceğinizi gösterir.Sol dizin, satırı ve sağ sütunu tanımlar. Aşağıdaki örnek, 4x5 iki boyutlu bir dizide değerleri nasıl ayarlayabileceğinizi gösterir. Dizeler üzerinde yineleme yapmak için bir dış döngü kullanılır için, sütunlar üzerinde yineleme yapmak için - dahili. Sonraki her öğeye bir öncekinden daha büyük bir değer atanır. Genel sınıf TwoDArray1 (genel statik geçersiz ana (String args) (int ikiD = yeni int; int i, j, k = 0; for (i = 0; i)< 4; i++) {
for (j = 0; j < 5; j++) {
twoD[i][j] = k++;
System.out.print(twoD[i][j] + " ");
}
System.out.println();
}
}
}
Şimdi dizinin nasıl temsil edildiğini görelim. int ikiD = yeni int; bellekte Değişken ikiD bir matrisi değil, üç elemandan oluşan bir satırı (kırmızı) gösterir. Her öğenin değeri, dört öğeli bir dizeye (mor) bir başvurudur. Aşağıdaki resim, üç boyutlu bir dizinin nasıl depolandığını gösterir. int üçD = yeni int akılda: Benzer şekilde, herhangi bir boyutta bir dizi bellekte saklanabilir. Şimdiye kadar incelediğimiz iki boyutlu dizilerde, her satırdaki eleman sayısı aynıdır - çoğu zaman öyledir. Ancak bu gerekli değildir, her satır farklı sayıda öğe içerebilir. Örneğin: Böyle bir diziyi uygulayan kodu görelim. Bir diziyi bildirirken, yalnızca ilk boyut için eleman sayısını ayarlamak gerekir - int dizisi = yeni int... Böylece dizideki satır sayısını belirtiyoruz, ancak her satır için bellek ayırmıyoruz. Daha sonra dizinin her satırı için ayrı bellek ayırıyoruz. Örneğin, dizini sıfır olan dize 1 boyutunda olacaktır - dizi = yeni int. Genel sınıf TwoDArray2 (genel statik geçersiz ana (String args) (int dizi = yeni int; dizi = yeni int; dizi = yeni int; dizi = yeni int; dizi = yeni int; int i, j, k = 0; for ( ben = 0; ben< 4; i++) {
for (j = 0; j < i + 1; j++) {
array[i][j] = k++;
System.out.print(array[i][j] + " ");
}
System.out.println();
}
}
}
Çok boyutlu diziler için, tüm öğelerin değerleri önceden biliniyorsa, bir başlatma bloğu da kullanabilirsiniz. Her bir satır, küme parantezleri içine alınır: Genel sınıf TwoDarray3 (genel statik geçersiz ana (String args) (double arrayTwoD = ((0, 1, 2, 3)), (4, 5, 6, 7), (8, 9, 10, 11), (12, 13, 14, 15)); for (double arrayOneD: arrayTwoD) (for (çift element: arrayOneD) (System.out.print (element + "");) System.out.println ();))) Aşağıdaki örnek, bir dizinin uzunluğunun nasıl alınacağını gösterir. Bunun için değişken kullanılır. uzunluk... Tek boyutlu bir dizide her şey açıktır - uzunluğu, öğelerinin sayısıdır. Çok boyutlu bir dizinin uzunluğu, ilk boyutundaki öğelerin sayısıdır. Örneğin, dizinin uzunluğu dizi2 2'dir. Ayrıca dizideki her satırın uzunluğunu da alabilirsiniz. Örneğin, dizi2.uzunluk- dizindeki öğelerin sayısını sıfır dizine sahip olarak döndürür. Genel sınıf ArraySize (genel statik geçersiz ana (Dize bağımsız değişkenler) (int dizi1 = (1, 2, 3, 4); int dizi2 = ((1, 1, 1), (2, 2, 2)); System.out .println ("dizi1'in boyutu =" + dizi1.uzunluk); System.out.println ("Dizi2'nin boyutu =" + dizi2.uzunluk); System.out.println ("dizi2'nin 1 satırlık boyutu =" + dizi2 .uzunluk);)) Yürütme sonucu: Dizi1'in boyutu = 4 Dizi2'nin boyutu = 2 Dizi2'nin 1 satırının boyutu = 3 Dizilerle çalışırken yararlı olan birkaç yöntem vardır. Onları düşünün: Yöntem, öğeleri virgülle ayırarak tek boyutlu bir dizinin dize temsilini döndürür. Diziler arasında döngü yapmak yerine içinörnek 4'te yaptığımız gibi, öğeleri konsola çıkarmak için bu yöntemi kullanabilirsiniz: Yöntem, dizeleri köşeli parantezler içine alarak çok boyutlu bir dizinin dize temsilini döndürür: Yöntem Diziler.sort () sayısal bir dizinin öğelerini artan düzende sıralar: Yöntem Arrays.binarySearch () diziyi belirli bir değer için arar ve eleman numarasını döndürür. Gerekli eleman bulunamazsa, geri döner. - (konum + 1), nerede konum- OLABİLECEK öğenin konumu. Dizi sıralanmalıdır, aksi takdirde yöntem çağrısının sonucu tanımsız olacaktır: Yürütme sonucu: Yöntem Sistem.dizikopyası () bir dizinin bir kısmını başka bir diziye kopyalamanıza izin verir. Bir diziden 2,3,4 öğelerini kopyalayan bir örnek düşünün diziKaynak bir diziye diziHedef: Java.util.Arrays'i içe aktarın; public class ArrayCopy1 (public static void main (String args) (int arraySource = (1, 2, 3, 4, 5, 6); int arrayDestination = (0, 0, 0, 0, 0, 0, 0, 0) ; System.out.println ("arraySource:" + Arrays.toString (arraySource)); System.out.println ("arrayDestination:" + Arrays.toString (arrayDestination)); System.arraycopy (arraySource, 1, arrayDestination, 2 , 3); System.out.println ("arrayDestination, arrayCopy'den sonra:" + Arrays.toString (arrayDestination));)) Yürütme sonucu: ArraySource: arrayDestination: arrayCopy'den sonra arrayDestination: Örtüşen alanlarla aynı diziye kopyalanabilir: Java.util.Arrays'i içe aktarın; public class ArrayCopy2 (public static void main (String args) (int dizi = (1, 2, 3, 4, 5, 6, 7, 8); System.out.println (Arrays.toString (dizi)); System. arraycopy (dizi, 1, dizi, 3, 3); System.out.println (Arrays.toString (dizi));)) Yürütme sonucu:
diziler(diziler) aynı türden sıralı eleman kümeleridir. Bir dizinin öğeleri, diğer dizilere yapılan başvurular da dahil olmak üzere, basit ve başvuru türlerinin nesneleri olabilir. Dizilerin kendileri nesnelerdir ve Object sınıfını devralır. Duyuru int ia = yeni int; Başlangıçta int türündeki üç Öğe kümesine işaret eden ia adlı bir dizi tanımlar. Dizinin boyutu, dizi bildiriminde belirtilmemiştir. Bir dizideki eleman sayısı, yeni operatör kullanılarak oluşturulduğunda belirtilir. Dizinin uzunluğu, oluşturma sırasında sabitlenir ve daha sonra değiştirilemez. Yine de, değişken dizi tipi (bizim örneğimizde - ia) herhangi bir zamanda farklı bir boyuta sahip yeni bir dizi atanabilir. Dizi elemanlarına, indeks numaralarının değerleri ile erişilir. Dizinin ilk elemanının indeksi sıfır (0) ve sonuncusu uzunluk - 1'dir. Dizi elemanına, dizi adı ve köşeli parantez [ve] içine alınmış indeks değeri belirtilerek erişilir. önceki örnekte, ia dizideki ilk öğe olacak ve ia son olacak. Dizi öğesine dizin tarafından her erişildiğinde, Java çalışma zamanı sistemi dizin değerinin kabul edilebilir sınırlar içinde olup olmadığını kontrol eder ve test yanlışsa bir ArraylndexOutOfBoundsException atar. 6 İndeks ifadesi int türünde olmalıdır - maksimum dizi elemanı sayısını sınırlayan tek şey budur. Bir dizinin uzunluğunu, dizi nesnesinin (dolaylı olarak genel ve nihai olan) uzunluk alanını kullanarak belirlemek kolaydır. Aşağıdaki, ia dizisindeki her öğenin içeriğini görüntülemek için bir Döngünün yürütüldüğü önceki örnekten değiştirilmiş bir koddur: for (int ben = o; ben< ia.length; i++) system.out.println (i + ":" + ia [i]); Sıfır uzunlukta bir dizi (yani elemanı olmayan bir dizi) genellikle denir boş. Bir diziye yapılan boş bir başvuru ile boş bir dizi başvurusunun tamamen farklı şeyler olduğuna dikkat edin. Boş bir dizi, içinde hiçbir öğe olmayan gerçek bir dizidir. Boş bir dizi, bir yöntemden dönerken boş diziye uygun bir alternatif sağlar. Yöntem null döndürebiliyorsa, yöntemin çağrıldığı uygulama kodu, kalan işlemlere devam etmeden önce döndürülen değeri null ile karşılaştırmalıdır. Yöntem bir dizi döndürürse (muhtemelen boş), ek kontrollere gerek yoktur - elbette, dizinin uzunluğuyla ilgili olanlar dışında ve her durumda yapılmalıdır. Köşeli parantezlerin türünün adından sonra değil, dizi tanımlayıcısından sonra belirtildiği başka bir dizi bildirimi biçimine izin verilir: int ia = yeni int; Bununla birlikte, daha eski sözdizimi, tür bildirimi daha kompakt olduğu için tercih edilir olarak kabul edilir. Dizi bildirimlerindeki değiştiriciler Bildirimlerde belirli dizileri kullanma kuralları değiştiriciler yaygındır ve yalnızca dizinin alanlara mı yoksa Yerel değişkenlere mi ait olduğuna bağlıdır. Hatırlanması gereken önemli bir şey var - değiştiriciler diziye olduğu gibi uygulanır, ancak bireysel öğelerine uygulanmaz. Dizi bildiriminde son bayrak belirtilirse, bu yalnızca diziye yapılan başvurunun oluşturulduktan sonra değiştirilemeyeceği, ancak hiçbir şekilde tek tek dizi öğelerinin içeriğinin değiştirilmesi olasılığını engellemediği anlamına gelir. Dil, dizi öğeleri için herhangi bir değiştiricinin (örneğin, final veya yolatile) belirtilmesine izin vermez. Çok boyutlu diziler Java, beyan etme yeteneğini destekler çok boyutlu diziler(çok boyutlu diziler) (yani öğeleri başka diziler olan diziler), İki boyutlu bir matris bildirme ve öğelerinin içeriğini ekranda görüntüleme kodu şöyle görünebilir: şamandıra matı = yeni şamandıra; setupMatrix (mat); for (int y = o; y< mat.length; у++) { for (int x = o; x< mat[y].length; х++) system.out.print (mat [y] [x] + ""); system.out.println(); Bir dizi oluştururken, en azından ilk, "en soldaki" boyutu belirtilmelidir. Diğer boyutların belirtilmesine izin verilmez - bu durumda daha sonra belirlenmeleri gerekecektir. Yeni operatörde tüm boyutları aynı anda belirtmek, ek yeni operatörler kullanma gereğini ortadan kaldırarak bir dizi oluşturmanın en kısa yoludur. Bir dizi matı bildirmek ve oluşturmak için yukarıdaki ifade, aşağıdaki kod parçasına eşdeğerdir: şamandıra matı = yeni şamandıra; for (int y = o; y< mat.length; у++) mat [y] = yeni kayan nokta; Bu bildirim biçimi, belirli veri dizilerini depolamak için gerekli olan farklı boyutlarda dizilerin dizilerini oluşturmak için aynı boyutlara sahip diziler (örneğin 4 x 4) elde etmenin yanı sıra izin verme avantajına sahiptir. Dizileri Başlatma Bir dizi oluşturulduğunda, dizinin türüne bağlı olarak her öğeye varsayılan bir değer atanır: sayısal türler için sıfır (0), char için '\ u0000 ′ _, boolean için false ve başvuru türleri için null. Referans türünde bir dizi bildirerek, aslında bir dizi n tanımlıyoruz. değişken bu türden. Aşağıdaki kod parçasını göz önünde bulundurun: Attr attrs = yeni Attr; for (int ben = o; ben< attrs.length; i++) attrs [i] = yeni Attr (adlar [i], değerler [i]); Yeni operatörü içeren ilk ifade yürütüldükten sonra, attrs değişkeni, null olarak başlatılan 12 değişkenlik bir diziye bir başvuru alır.Bu tür Attr nesneleri yalnızca döngü sırasında oluşturulur. Bir dizi, öğelerinin orijinal Değerlerini listeleyen küme parantezleri içindeki bir yapı aracılığıyla (bildirimiyle aynı anda) başlatılabilir: Dize tehlikeleri = ("Aslanlar", "Kaplanlar", "Ayılar"); Aşağıdaki kod parçası aynı sonucu verecektir: String tehlikeleri = new String; tehlikeler = "Aslanlar"; tehlikeler = "Kaplanlar"; tehlikeler = "Ayılar"; Kıvrımlı parantez içindeki başlatıcıların bir listesini sağlayan ilk biçim, new operatörünün açık bir şekilde kullanılmasını gerektirmez - çalışma zamanı sistemi tarafından dolaylı olarak çağrılır. Bu durumda dizinin uzunluğu, Başlatıcı değerlerinin sayısı ile belirlenir. Yeni operatörün açıkça belirtilmesine de izin verilir, ancak boyut yine de ihmal edilmelidir, çünkü daha önce olduğu gibi çalışma zamanı sistemi tarafından belirlenir: String tehlikeleri = new String ("Aslanlar", "Kaplanlar", "Ayılar"); Bir diziyi bildirmenin ve başlatmanın bu biçimi, örneğin bir yöntem çağrısı ifadesinde, kodun herhangi bir yerinde kullanılabilir: printStringsCnew String ("bir", "iki", "üç")); Bu şekilde oluşturulan isimsiz bir diziye denir. anonim(anonim). Dizi dizileri, iç içe geçmiş orijinal değerler dizileriyle başlatılabilir. Aşağıda, sözde dizinin ilk birkaç satırını içeren bir dizi bildirme örneği verilmiştir. Pascal üçgeni, burada her satır kendi değer dizisiyle tanımlanır. int pascalsÜçgen = ( { 1, 4, 6, 4, 1 }, Çok boyutlu dizi indeksleri dıştan içe doğru sıralanır. Örneğin, pascalsTriangle); // Bir dizinin oluşturulmasını gösteren bir örnek sınıf GFG // 5 tam sayı için bellek ayırma. // yakın zamanda ... // belirtilen dizinin elemanlarına erişim Dizin 0: 10 Dizin 1: 20 Dizin 2: 30 Dizin 3: 40 Dizin 4'teki öğe: 50 Veri öğeleriyle aynı şekilde aşağıdaki gibi bir nesne dizisi oluşturulur: Öğrenci arr = yeni Öğrenci; StudentArray, yedi Student nesnesinin adreslerinin saklanabileceği, her öğrenci sınıfından yedi bellek öğesi içerir. Öğrenci nesneleri, öğrenci sınıfının yapıcısı kullanılarak oluşturulmalı ve bunların referansları, dizi öğelerine aşağıdaki gibi atanmalıdır: Öğrenci arr = yeni Öğrenci; // Bir dizi oluşturmayı gösteren Java programı sınıf Öğrenci // Dizinin öğeleri, Student sınıfının nesneleridir. // Student türündeki 5 nesne için bellek ayırma. // dizinin ilk elemanlarını başlat // dizinin ikinci elemanlarını başlat // yakın zamanda ... // belirtilen dizinin elemanlarına erişim Şunları elde ederiz: 0: 1 aman Öğe 1: 2 vaibhav Öğe 2: 3 shikar Öğe 3: 4 dharmesh Öğe 4: 5 mohit Dizinin dışındaki bir öğeye erişmeye çalışırsak ne olur? Çok boyutlu diziler, her bir elemanı başka bir diziye referans içeren dizi dizileridir. Her boyut için bir dizi köşeli parantez () eklenerek oluşturulur. Bir örnek düşünelim: Int intArray = yeni int; // bir 2B dizi veya matris int intArray = yeni int; // bir 3B dizi Çok Boyutlu Sınıf // 2B diziyi yazdırma System.out.println(); Çıktı: 2 7 9 3 6 1 7 4 2 Değişkenler gibi dizileri de yöntemlere geçirebiliriz. // Dizinin metot sınıfına geçirilmesini gösteren Java programı Test (// Sürücü metodu public static void main (String args) (int arr = (3, 1, 2, 5, 4); // diziyi metoda geçirme m1 toplamı (dizi);) public static void toplamı (int dizi) (// dizi değerlerinin toplamını alma int toplam = 0; for (int i = 0; i)< arr.length; i++)
sum+=arr[i];
System.out.println("sum of array values: " + sum);
}
}
Çıktıda şunları elde ederiz: dizi değerlerinin toplamı: 15 Her zamanki gibi, yöntem bir dizi de döndürebilir. Örneğin, aşağıdaki program m1 yönteminden bir dizi döndürür. // Göstermek için Java programı // yöntem sınıfından dizinin dönüşünü Test (// Sürücü yöntemi public static void main (String args) (int arr = m1 (); for (int i = 0; i)< arr.length; i++)
System.out.print(arr[i]+" ");
}
public static int m1()
{
// returning array
return new int{1,2,3};
}
}
Her dizinin, aynı bileşen türüne sahip diğer tüm dizilerle paylaşılan ilişkili bir sınıf nesnesi vardır. // Gösterilecek Java programı // Diziler için Sınıf Nesneleri sınıf Testi (genel static void main (String args) (int intArray = yeni int; byte byteArray = yeni bayt; kısa şortArray = yeni kısa; // Strings dizisi String strArray = yeni Dize; System.out.println (intArray.getClass()); System.out.println (intArray.getClass (). getSuperclass()); System.out.println (byteArray.getClass()); System.out. println (shortsArray.getClass ()); System.out.println (strArray.getClass ());)) sınıf + ""); ))) Çok boyutlu bir dizinin klonu (Object gibi) bir kopyadır; bu, her öğeyle yalnızca bir yeni dizi ve orijinal öğe dizisine bir başvuru oluşturduğu anlamına gelir, ancak iç içe diziler yaygındır. // Çok boyutlu dizilerin klonlanmasını gösteren Java programı class Test (public static void main (String args) (int intArray = ((1,2,3), (4,5)); int cloneArray = intArray. klon (); // false yazdıracak System.out.println (intArray == cloneArray); // sığ kopya oluşturulduğunda doğru yazdıracak // yani alt diziler paylaşılıyor System.out.println (intArray == cloneArray) ; System.out.println (intArray == klonArray);)) YANLIŞ
Çok boyutlu diziler üzerinde döngü
int sayılar = yeni int ((1, 2, 3), (4, 5, 6), (7, 8, 9)); for (int ben = 0; ben< nums.length; i++){
for(int j=0; j < nums[i].length; j++){
System.out.printf("%d ", nums[i][j]);
}
System.out.println();
}
Dizi bildirimi:
karakter;
dize p;
veya
karakter;
dize p;
Diziler oluşturma:
s = yeni karakter;
p = yeni Dize;
Dizileri başlatma:
oluşturulduktan sonra - eleman eleman: int a = (1,2,3,4,5);
bildirirken / oluştururken - dizinin tamamı: int b = new int (2, 4, 6) ;.
elemanlar eşittir:
0 - sayısal dizilerde
false - boole dizilerinde
null - nesne dizilerinde
Tüm dizilerin bir uzunluk alanı vardır - dizinin uzunluğu (eleman olarak)
İlk eleman her zaman indeks 0'dır (değerle karıştırılmamalıdır).
Son eleman her zaman indeks uzunluğu-1'dedir.1. Diziler nedir?
2. Tek boyutlu diziler
Örnek 1. Dizi bildirmeye bir örnek
2.1. Anahtar Kelime Kullanarak Dizi Başlatma yeni
Örnek 2. Bir dizi bildirimi örneği
2.2. Bir başlatma bloğu kullanarak bir diziyi başlatma
Örnek 3. Tek boyutlu bir diziyi başlatma örneği
2.3. Adsız dizi
Örnek 4. Adsız dizi örneği
public class Array3 (public static void main (String args) (int testScores = (1, 2, 3, 4); for (int element: testScores) (System.out.print (element + "");) System.out .println (); testScores = new int (4, 7, 2); for (int öğesi: testScores) (System.out.print (eleman + "");) System.out.println (); print (yeni int (4, 6, 2, 3));) public static void print (int dizisi) (for (int element: array) (System.out.print (element + "");))) 3. Çok boyutlu diziler
Örnek 5. İki boyutlu dizi örneği
3.2 Bellekte çok boyutlu bir diziyi temsil etme
Örnek 6. Farklı boyutlara sahip iki boyutlu bir dizi örneği
3.4. Çok boyutlu bir diziyi başlatmak için blok
Örnek 7. İki boyutlu bir diziyi başlatma
3.4. dizi uzunluğu
Örnek 8. Bir dizinin uzunluğunu alma
4. Dizilerle çalışırken faydalı yöntemler
4.1. Yöntem Diziler.toString ()
Örnek 9. Yöntemin uygulanması Diziler.toString ()
java.util.Arrays'i içe aktarın; genel sınıf ArraysToStringDemo (genel statik geçersiz ana (String args) (int dizi = (1, 4, 6, 3, 8); System.out.println (Arrays.toString (dizi));)) 4.2. Yöntem Arrays.deepToString ()
Örnek 10. Yöntemin uygulanması Arrays.deepToString ()
java.util.Arrays'i içe aktarın; genel sınıf ArraysDeepToStringDemo (genel statik geçersiz ana (String args) (String dizisi = ("bir-bir", "bir-iki", "bir-üç"), ("iki-bir", "iki-iki", "iki-üç")); System.out.println (Arrays.deepToString (dizi));)) 4.3. Yöntem Diziler.sort ()
Örnek 11. Bir diziyi sıralama
java.util.Arrays'i içe aktarın; public class ArraysSort1 (public static void main (String args) (int dizi = yeni int (3, 1, 5, 6, 8); Arrays.sort (dizi); System.out.println (Arrays.toString (dizi)) ;)) 4.4. Yöntem Arrays.binarySearch ()
Örnek 12. Bir dizi elemanı bulma
java.util.Arrays'i içe aktarın; genel sınıf BinarySearch1 (genel statik geçersiz ana (Dize argümanları) (int dizi1 = (10, 20, 30, 40); int konum1 = Arrays.binarySearch (dizi1, 20); int konum2 = Arrays.binarySearch (dizi1, 25); System.out.println (poz1); System.out.println (poz2);)) 4.5. Yöntem Sistem.dizikopyası ()
Örnek 13. Bir diziyi kopyalama
Örnek 14. Bir diziyi kendisinden kendisine kopyalamak
// tamsayılar, bazı değerleri bir diziye koyar,
// ve her değeri yazdırır.
{
{
int dizi;
dizi = yeni int;
dizi = 10;
dizi = 20;
dizi = 30;
dizi = 40;
dizi = 50;
for (int ben = 0; ben< arr.length; i++)
System.out.println ("İndeksteki öğe" + i +
":" + dizi [i]);
}
}
Sonuç olarak şunları elde ederiz:Nesne dizileri
// nesneler
{
public int roll_no;
genel Dize adı;
Öğrenci (int roll_no, Dize adı)
{
this.roll_no = roll_no;
this.name = isim;
}
}
genel sınıf GFG
{
public static void main (String argümanlar)
{
// bir tamsayı dizisi bildirir.
Öğrenci arr;
arr = yeni Öğrenci;
arr = yeni Öğrenci (1, "aman");
arr = yeni Öğrenci (2, "vaibhav");
arr = yeni Öğrenci (3, "shikar");
dizi = yeni Öğrenci (4, "dharmesh");
arr = yeni Öğrenci (5, "mohit");
for (int ben = 0; ben< arr.length; i++)
System.out.println ("Öğe" + i + ":" +
dizi [i] .roll_no + "" + dizi [i] .name);
}
}
Derleyici, diziye geçersiz bir dizinde erişildiğini belirten bir ArrayIndexOutOfBoundsException oluşturur. Dizin, dizinin boyutuna eşit veya ondan büyük veya ona eşittir. Çok boyutlu
{
public static void main (String argümanlar)
{
// 2B diziyi bildirme ve başlatma
int dizi = ((2,7,9), (3,6,1), (7,4,2));
for (int ben = 0; ben< 3 ; i++)
{
for (int j = 0; j< 3 ; j++)
System.out.print (dizi [i] [j] + "");
}
}
} Dizileri Bir Yönteme Geçirmek
Metotlardan Dizileri Döndürmek
Sınıf nesneleri
NS
NS
Taramalı Atomik Kuvvet Mikroskobu Laboratuvar raporu şunları içermelidir:
Havai iletişim ağı için destek seçimi
AC katener tasarımı ve hesaplanması
Mikroişlemci sistemlerinin geliştirilmesi Mikroişlemci sistemlerinin tasarım aşamaları
mcs51 ailesinin mikrodenetleyicileri