ArrayList: a list that grows · ArrayList: daftar yang membesar
A list that can grow
- An array has a fixed size. Once you make it, the length cannot change.
- An
ArrayListis a list that can grow and shrink while the program runs. - You must import it at the top of the file:
import java.util.ArrayList;.
Daftar yang dapat membesar
- Array memiliki ukuran tetap. Setelah dibuat, panjangnya tidak bisa berubah.
- Sebuah
ArrayListadalah daftar yang dapat membesar dan mengecil saat program berjalan. - Anda harus mengimpornya di bagian paling atas file:
import java.util.ArrayList;.
Making an ArrayList
- Write the type of the items inside
<...>. This is the AP CSA way. ArrayList<String>holds text.ArrayList<Integer>holds whole numbers.- A new list starts empty, with size
0.
Membuat ArrayList
- Tulis tipe item di dalamnya
<...>. Ini adalah cara AP CSA. ArrayList<String>menyimpan teks.ArrayList<Integer>menyimpan bilangan bulat.- Daftar baru dimulai kosong, dengan ukuran
0.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> names = new ArrayList<String>();
System.out.println(names.size()); // 0
names.add("Ann");
names.add("Bo");
System.out.println(names.size()); // 2
System.out.println(names); // [Ann, Bo]
}
}
The five methods you need
list.size()— how many items are in the list.list.add(x)— putxat the end of the list.list.get(i)— the item at positioni(the first position is 0).list.set(i, x)— replace the item at positioniwithx.list.remove(i)— take out the item at positioni; later items shift left.
Lima metode yang Anda butuhkan
list.size()— berapa banyak item dalam daftar.list.add(x)— masukkanxke akhir daftar.list.get(i)— item pada posisii(posisi pertama adalah 0).list.set(i, x)— ganti item pada posisiidenganx.list.remove(i)— keluarkan item pada posisii; item-item selanjutnya bergeser ke kiri.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruit = new ArrayList<String>();
fruit.add("apple");
fruit.add("pear");
fruit.add("plum");
System.out.println(fruit.get(0)); // apple
fruit.set(1, "grape"); // pear -> grape
fruit.remove(2); // take out "plum"
System.out.println(fruit); // [apple, grape]
}
}
Numbers need Integer
- An
ArrayListcan only hold objects, not the simple typeint. - So we write
ArrayList<Integer>.Integeris the object form ofint. - Java changes between
intandIntegerfor you. This is called autoboxing. - You can
add(7)anint, andget(0)gives back a value you can use asint.
Angka memerlukan Integer
- An
ArrayListhanya dapat menyimpan objek, bukan tipe sederhanaint. - Jadi kita menulis
ArrayList<Integer>.Integeradalah bentuk objek dariint. - Java mengubah antara
intdanIntegeruntuk Anda. Ini disebut autoboxing. - Anda dapat
add(7)anint, danget(0)mengembalikan nilai yang dapat digunakan sebagaiint.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> nums = new ArrayList<Integer>();
nums.add(10); // int 10 is boxed into Integer
nums.add(20);
int first = nums.get(0); // unboxed back to int
System.out.println(first + nums.get(1)); // 30
}
}
Two ways to traverse
- An index for-loop uses positions
0tosize() - 1. Use it when you need the index. - An enhanced for-loop (
for (int x : list)) reads each item in turn. Use it when you only need the values. - Both visit every item once, in order.
Dua cara untuk melintasi
- Index for-loop menggunakan posisi
0hinggasize() - 1. Gunakan ketika Anda membutuhkan indeks. - Enhanced for-loop (
for (int x : list)) membaca setiap item secara berurutan. Gunakan ketika Anda hanya membutuhkan nilainya. - Keduanya mengunjungi setiap item sekali, secara berurutan.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> nums = new ArrayList<Integer>();
nums.add(3);
nums.add(5);
nums.add(8);
// index for-loop
for (int i = 0; i < nums.size(); i++) {
System.out.println("at " + i + ": " + nums.get(i));
}
// enhanced for-loop
int total = 0;
for (int x : nums) {
total = total + x;
}
System.out.println("total " + total); // total 16
}
}
Common mistakes
ArrayListuses.add,.get(i),.size()— not[].- Store objects: use
ArrayList<Integer>, notArrayList<int>.
Kesalahan umum
ArrayListmenggunakan.add,.get(i),.size()— bukan[].- Simpan objek: gunakan
ArrayList<Integer>, bukanArrayList<int>.
Now you try
- Each task pre-fills the class skeleton — write your code inside main, or complete the method shown.
- Press Run to compile and run, then Check answer.
- Your code compiles and runs on the server, so even the first run is fast.
Sekarang Anda coba
- Setiap tugas telah mengisi kerangka class — tulis kode Anda di dalam main, atau lengkapi method yang ditampilkan.
- Tekan Jalankan untuk mengompilasi dan menjalankan, lalu Periksa jawaban.
- Kode Anda dikompilasi dan dijalankan di server, sehingga bahkan jalankan pertama kali pun cepat.
An ArrayList grows · ArrayList membesar
Unlike an array, an ArrayList changes size as you add/remove. · Berbeda dengan array, ArrayList berubah ukuran saat Anda menambah/menghapus.
Complete sumList(ArrayList<Integer> a) so it returns the total of all numbers in the list. An empty list totals 0. Traverse with a loop. · Lengkapi sumList(ArrayList<Integer> a) agar mengembalikan total dari semua angka dalam daftar. Daftar kosong berjumlah 0. Jelajahi dengan perulangan.
Click Run to see the output here. · Klik Jalankan untuk melihat output di sini.
Complete countUp(int n) so it makes a new ArrayList<Integer>, adds the numbers 1, 2, ..., n in order, and returns it. If n is 0, return an empty list. · Lengkapi countUp(int n) agar membuat ArrayList<Integer> baru, menambahkan angka 1, 2, ..., n secara berurutan, dan mengembalikannya. Jika n adalah 0, kembalikan daftar kosong.
Click Run to see the output here. · Klik Jalankan untuk melihat output di sini.
Complete doubleAt(ArrayList<Integer> a, int i). Read the value at index i with get, then use set to store two times that value back at index i. Return nothing (void). · Lengkapi doubleAt(ArrayList<Integer> a, int i). Baca nilai pada indeks i dengan get, lalu gunakan set untuk menyimpan dua kali nilai tersebut kembali pada indeks i. Kembalikan sesuatu (void).
Click Run to see the output here. · Klik Jalankan untuk melihat output di sini.