CodeGym /Java Blog /Acak /Array di Jawa
John Squirrels
Level 41
San Francisco

Array di Jawa

Dipublikasikan di grup Acak
Bayangkan lemari di ruang penyimpanan. Masing-masing memiliki nomornya sendiri, dan masing-masing menyimpan beberapa barang Bagasi. Atau daftar anggur di mana setiap jenis anggur diberi nomor dan Anda memesan dengan memberikan nomor minuman Anda. Atau daftar siswa di mana "Adams" dicatat di posisi pertama dan "Zimmer" di belakang. Atau daftar penumpang di pesawat terbang, yang masing-masing diberi tempat duduk bernomor. Di Java, array sering digunakan untuk bekerja dengan struktur seperti itu, yaitu kumpulan data homogen.

Array dalam kursus CodeGym

Di CodeGym, Anda mulai bekerja dengan array di Level 7 dari pencarian Java Syntax. Tiga pelajaran dikhususkan untuk mereka, serta 8 tugas di berbagai tingkatan untuk mengkonsolidasikan keterampilan Anda bekerja dengan array. Tapi Anda akan menemukan array berkali-kali selama kursus (khususnya, kelas Array akan dipelajari dalam pencarian Java Collections dan sebagai bagian dari pekerjaan Anda di masa mendatang.

Apa itu larik?

Array adalah struktur data yang menyimpan elemen dari tipe yang sama. Anda dapat menganggapnya sebagai satu set sel bernomor. Anda dapat memasukkan beberapa data di setiap sel (satu elemen data per sel). Sel tertentu diakses menggunakan nomornya. Nomor elemen dalam array juga disebut indeks . Di Jawa, array adalah homogen, yaitu semua selnya berisi elemen dengan tipe yang sama. Dengan demikian, array bilangan bulat hanya berisi bilangan bulat ( int ), array string — hanya string, dan array instance dari kelas Dog yang telah kita buat hanya akan berisi objek Dog . Dengan kata lain, Java tidak mengizinkan kita meletakkan bilangan bulat di sel pertama array, sebuah String di sel kedua, dan Anjing di sel ketiga.Array di Jawa - 2

Mendeklarasikan sebuah array

Bagaimana Anda mendeklarasikan array?

Seperti variabel lainnya, array harus dideklarasikan di Java. Ini dapat dilakukan dengan salah satu dari dua cara. Mereka setara, tetapi cara pertama lebih konsisten dengan gaya Java. Yang kedua adalah warisan dari bahasa C: banyak pemrogram C beralih ke Java, dan metode alternatif disimpan untuk kenyamanan mereka. Tabel menunjukkan kedua cara mendeklarasikan array di Java:
TIDAK. Mendeklarasikan array, sintaks Java Contoh Komentar
1.
tipedata[] namaarray;

int[] myArray;

Object[] 
arrayOfObjects;  
Dianjurkan untuk mendeklarasikan array dengan cara ini. Ini adalah gaya Jawa.
2.
dataType arrayName[];

int myArray[];

Object 
arrayOfObjects[];
Metode deklarasi array yang diwarisi dari C/C++, berfungsi di Java
Dalam kedua kasus, tipe data adalah tipe variabel dalam larik. Dalam contoh, kami mendeklarasikan dua array. Satu akan menyimpan int s, dan yang lainnya — Objek objek . Jadi, sebuah deklarasi array memiliki nama dan tipe (tipe dari elemen-elemen array). ArrayName adalah nama dari array.

Membuat larik

Bagaimana Anda membuat array?

Seperti objek lainnya, Anda dapat membuat larik Java, yaitu mencadangkan tempat di memori untuknya, menggunakan operator baru . Begini caranya:

new typeOfArray[length]; 
di mana typeOfArray adalah tipe dan panjang array adalah panjangnya (yaitu jumlah sel) yang dinyatakan sebagai bilangan bulat ( int). Tetapi perhatikan bahwa di sini kita hanya mengalokasikan memori untuk array — kita belum mengaitkan array yang dideklarasikan dengan variabel yang dideklarasikan sebelumnya. Biasanya, sebuah array pertama kali dideklarasikan dan kemudian dibuat instance-nya, misalnya:

int[] myArray; // Array declaration
myArray = new int[10]; // Create (allocate memory for) an array of 10 ints
Di sini kami membuat larik bilangan bulat yang disebut myArray , memberi tahu kompiler bahwa itu terdiri dari 10 sel (masing-masing akan berisi bilangan bulat). Namun, jauh lebih umum untuk menggunakan sintaks singkatan berikut untuk segera membuat larik saat dideklarasikan:

int[] myArray = new int [10]; // Declare the array and allocate memory "in one blow"
Tolong dicatat:Setelah array dibuat menggunakan operator baru , selnya berisi nilai default. Untuk tipe numerik (seperti dalam contoh kita), nilai defaultnya adalah 0, untuk tipe boolean adalah false , dan untuk tipe referensi adalah null . Jadi, setelah mengeksekusi pernyataan ini

int[] myArray = new int[10];
kita mendapatkan larik berisi sepuluh bilangan bulat dan, hingga program melakukan sesuatu untuk mengubah nilainya, setiap sel berisi 0.

Anda dapat menemukan informasi lebih lanjut tentang array di artikel " Sesuatu tentang array "

Panjang array di Jawa

Seperti yang kami katakan di atas, panjang array adalah jumlah elemen yang dirancang untuk menampung array. Panjang array tidak dapat diubah setelah dibuat. Tolong dicatatbahwa elemen array diberi nomor mulai dari nol di Jawa. Jadi, jika kita memiliki array 10 elemen, indeks elemen pertama adalah 0 dan indeks elemen terakhir adalah 9. Array di Jawa - 3Anda bisa mendapatkan panjang array menggunakan variabel panjang . Misalnya:

int[] myArray = new int[10]; // Create an int array for 10 elements and name it myArray
System.out.println(myArray.length); // Display the array's length, i.e. the number of elements we can put into the array
Keluaran:

10

Menginisialisasi array dan mengakses elemen-elemennya

Sekarang kita tahu cara membuat array di Java. Prosesnya membuat kita bukan array kosong, tetapi array yang diisi dengan nilai default. Misalnya, untuk larik int , ini adalah 0, dan jika kita memiliki larik dengan tipe referensi apa pun, default di setiap sel adalah null . Kami mengakses elemen array (misalnya, untuk menetapkan nilainya, menampilkannya di layar, atau melakukan beberapa operasi dengannya) dengan indeksnya. Inisialisasi array adalah proses pengisian array dengan nilai tertentu (selain default). Contoh: mari buat array string untuk 4 musim dan isi dengan nama musim.

String[] seasons = new String[4]; /* Declare and create an array. Java allocates memory for an array of 4 strings, and each cell is set to null (since String is a reference type) */ 

seasons[0] = "Winter"; /* We set the first cell, i.e. the cell with index zero, to "Winter". Here we access the zeroth element of the array and write a specific value to it. */ 
seasons[1] = "Spring"; // We follow a similar procedure for the cell with index 1 (the second cell)
seasons[2] = "Summer"; // ... index 2
seasons[3] = "Autumn"; // and finally, index 3
Sekarang nama musim ditulis ke empat sel larik kita. Kita dapat menginisialisasi array dengan cara yang berbeda, menggabungkan deklarasi dan inisialisasi:

String[] seasons = new String[] {"Winter", "Spring", "Summer", "Autumn"};
Terlebih lagi, operator baru dapat dihilangkan:

String[] seasons = {"Winter", "Spring", "Summer", "Autumn"};

Bagaimana Anda menampilkan array di layar di Java?

Anda dapat menampilkan elemen array di layar (yaitu di konsol) menggunakan loop for . Cara lain yang lebih singkat untuk menampilkan array akan dibahas dalam paragraf berjudul " Metode yang berguna untuk bekerja dengan array ". Sementara itu, lihat contoh ini di mana array ditampilkan menggunakan loop:

String[] seasons = new String {"Winter", "Spring", "Summer", "Autumn"}; 
for (int i = 0; i < 4; i++) {
System.out.println(seasons[i]); 
}
Program akan menampilkan sebagai berikut:

Winter 
Spring 
Summer 
Autumn

Array satu dimensi dan multidimensi di Java

Tetapi bagaimana jika kita ingin membuat bukan larik angka, string, atau objek lain, melainkan larik larik? Java memungkinkan Anda melakukan ini. Jenis array yang sudah kita kenal ( int[] myArray = new int[8] ) dikenal sebagai array satu dimensi. Tapi array array disebut array dua dimensi. Ini seperti tabel yang memiliki nomor baris dan nomor kolom. Atau, jika Anda telah mempelajari dasar-dasar aljabar linier, Anda dapat menganggapnya sebagai matriks. Array di Jawa - 4Mengapa kita membutuhkan array seperti itu? Nah, untuk memprogram matriks dan tabel, serta objek lain yang memiliki struktur serupa. Misalnya, papan catur dapat diwakili oleh larik 8x8. Array multidimensi dideklarasikan dan dibuat sebagai berikut:

Int[][] myTwoDimentionalArray = new int[8][8];
Array ini memiliki tepat 64 elemen: myTwoDimentionalArray[0][0] , myTwoDimentionalArray[0][1] , myTwoDimentionalArray[1][0] , myTwoDimentionalArray[1][1] dan seterusnya hingga myTwoDimentionalArray[7][7] . Jadi jika kita menggunakannya untuk mewakili papan catur, maka A1 sesuai dengan myTwoDimentionalArray[0][0] dan E2 sesuai dengan myTwoDimentionalArray[4][1] . Tapi seberapa jauh kita bisa mendorong ini? Di Java, Anda dapat menentukan larik dari larik... larik dari larik dari larik, dan seterusnya. Tentu saja, array tiga dimensi dan dimensi yang lebih tinggi sangat jarang digunakan. Yang mengatakan, Anda bisa menggunakan array tiga dimensi untuk memprogram kubus Rubik, misalnya.

Metode yang berguna untuk bekerja dengan array

Java memiliki kelas java.util.Arrays untuk bekerja dengan array. Secara umum, operasi yang paling umum dilakukan pada array adalah inisialisasi (mengisi elemen), mengambil elemen (berdasarkan indeks), menyortir, dan mencari. Mencari dan menyortir array adalah topik untuk hari lain. Di satu sisi, merupakan praktik yang baik untuk menulis sendiri beberapa algoritme pencarian dan pengurutan. Di sisi lain, semua algoritme terbaik telah diterapkan dan disertakan dalam pustaka standar Java, dan Anda dapat menggunakannya secara legal. Berikut adalah tiga metode yang berguna di kelas ini.

Menyortir array

Metode void sort(int[] myArray, int fromIndex, int toIndex) mengurutkan array integer atau subarray dalam urutan menaik.

Mencari elemen dalam array

int binarySearch(int[] myArray, int fromIndex, int toIndex, int key) . Metode ini mencari elemen kunci dalam larik atau subarray myArray yang diurutkan , dari fromIndex hingga toIndex . Jika item ditemukan, maka mengembalikan indeksnya. Jika tidak, ia mengembalikan (-fromIndex)-1 .

Mengubah array menjadi string

Metode String toString(int[] myArray) mengubah array menjadi string. Di Java, array tidak menggantikan toString() . Ini berarti bahwa jika Anda mencoba untuk menampilkan seluruh array sekaligus (System.out.println(myArray)) daripada satu elemen sekaligus seperti pada paragraf berjudul " Menampilkan array di layar ", Anda akan mendapatkan nama kelas dan hash heksadesimal array (didefinisikan oleh Object.toString() ). Jika Anda seorang pemula, Anda mungkin tidak mengerti penjelasan tentang metode toString . Awalnya, Anda tidak perlu melakukannya, tetapi menggunakan metode ini akan memudahkan untuk menampilkan array. Java memungkinkan Anda menampilkan array dengan mudah tanpa menggunakan loop. Contoh di bawah ini menunjukkan hal ini.

Contoh menggunakan sort, binarySearch, dan toString

Mari kita buat array bilangan bulat, tampilkan menggunakan toString , urutkan menggunakan metode sortir , lalu temukan beberapa angka di dalamnya.

class Main {
    public static void main(String[] args) {
        int[] array = {1, 5, 4, 3, 7}; // Declare and initialize the array
        System.out.println(array); // Try to display our array without using the toString method — the result is a hexadecimal number
        System.out.println(Arrays.toString(array)); // Display the array correctly 
        Arrays.sort(array, 0, 4); // Sort the entire array from the zeroth to the fourth element
        System.out.println(Arrays.toString(array)); // Display the sorted array
        int key = Arrays.binarySearch(array, 5); // Look for the number 5 in the sorted array. 
        // The binarySearch method will return the index of the array element we are searching for
        System.out.println(key); // Display the index of the number we searched for 
System.out.println(Arrays.binarySearch(array, 0)); // Now try to find a number that isn't in the array, 
        // and immediately display the result

    }
}
Keluaran:

[I@1540e19d 
[1, 5, 4, 3, 7] 
[1, 3, 4, 5, 7] 
3 
-1
String pertama adalah upaya untuk menampilkan array tanpa menggunakan toString . Yang kedua adalah array yang ditampilkan menggunakan toString . Yang ketiga adalah array yang diurutkan. Yang keempat adalah indeks dari angka yang kita cari (5) dalam larik terurut (ingat bahwa kita menghitung dari nol, jadi indeks elemen keempat larik adalah 3). Di string kelima, kita melihat -1. Ini adalah indeks array yang tidak valid. Ini menandakan bahwa angka yang kita cari (dalam hal ini, 0) tidak ada dalam array.

Lebih lanjut tentang metode di kelas Array

Kelas array dan penggunaannya — Artikel ini menjelaskan beberapa metode di kelas Array
Kelas Array memiliki 18 metode penting untuk bekerja dengan array

Singkatnya, array

  • Karakteristik penting dari sebuah array: tipe data yang ditempatkan di dalamnya, namanya, dan panjangnya.
    Properti terakhir ditentukan saat larik dibuat (ketika memori dialokasikan untuk larik). Dua properti pertama ditentukan saat array dideklarasikan.

  • Ukuran array (jumlah sel) harus berupa int

  • Tidak mungkin mengubah panjang array setelah dibuat.

  • Elemen array dapat diakses oleh indeksnya.

  • Elemen dalam array, seperti yang lainnya di Java, diberi nomor mulai dari nol.

  • Setelah array dibuat, diisi dengan nilai default.

  • Array di Java tidak sama dengan array di C++. Mereka hampir seperti pointer ke array dinamis.

Materi yang berguna tentang array

Ingin tahu lebih banyak tentang array? Lihat artikel di bawah ini. Ada banyak materi menarik dan bermanfaat tentang topik ini.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION