Bài 15: ArrayList trong Java (1) – www.AndroidCoBan.Com

– Thực tế, khi để quản lý 1 danh sách hóa đơn, thông tin khách hàng, học sinh …v..v..Chúng ta sẽ cần đến một khái niệm đó là mảng các đối tượng. Nghĩa là mỗi thành phần trong mảng là các đối tượng, các đối tượng lại có rất nhiều thuộc tính.
– Mảng thông thường có thể đáp ứng được một phần, nhưng chưa đủ. Vì trong quá trình thao tác dữ liệu, ta lại cần thêm, xóa, sửa, chèn. v..v.v.. Nghĩ đến các thao tác này, nếu bạn nào đã từng học C và Pascal chắc chắn sẽ nghĩ tới con trỏ, vì chỉ có con trỏ mới có thể. Nhưng làm việc với con trỏ trong C và Pascal khá mệt mỏi và dài dòng, khó hiểu, thậm chí nhiều bạn không thể học nổi khi gặp phần này và bỏ cuộc với lập trình vì nó! ^^
– Nói vậy các bạn đừng lo lắng, vì ArrayList học cực kỳ dễ dàng, thậm chí bạn không hiểu con trỏ bạn vẫn có thể thao tác được!
– ArrayList có thể nói nó là 1 phiên bản mới của mảng. Nó cũng truy xuất dữ liệu theo chỉ số, nhưng nó có nhiều điều vượt trội hơn rất nhiều so với mảng!
**Một trong những điều khiến mình rất thích khi học các bài Java cơ bản đó chính là ArrayList.

Mình sẽ giới thiệu 1 số phương thức thông dụng hay dùng trong ArrayList, và sẽ giải thích chúng thông qua các ví dụ phía dưới, còn lại khi thực hiện các bạn tự tìm hiểu bằng “Ctrl + cách” :D

Ví dụ 1:
Tạo 1 danh sách dùng ArrayList để xử lý 1 danh sách tên học sinh, đơn giản thôi nhé, chưa xử lý các đối tượng nhiều thuộc tính. Ví dụ này chỉ là 1 ArrayList giống 1 mảng thông thường. Với ví dụ này, chúng ta sẽ làm quen với khác phương thức thêm, chèn, sửa, xóa!

public class JavaAndroidVn {
 
    public static void main(String[] args) {
        ArrayList listHS = new ArrayList(); // Khai báo 1 đối tượng ArrayList
 
        String ten1 = "Vu Van T"; //Tạo đối tượng ten1 là tên 1 người
        listHS.add(ten1);        //Thêm đối tượng ten1 vào trong listHS
 
        String ten2 = "Nguyen Van A";
        listHS.add(ten2);
 
        String ten3 = "Nguyen Van B";
        listHS.add(ten3);
 
        String ten4 = "Vu Van C";
        listHS.add(ten4);
        //Như vậy tới đoạn code trên, ArrayList listHS đã có 4 đối tượng được thêm vào!
 
        // Tương tự như mảng, ArrayList truy xuất theo chỉ số và bắt đầu từ 0
        for (int i = 0; i < listHS.size(); i++) {        // listHS.size() là lấy ra kích cỡ của listHS
            System.out.println(listHS.get(i));          //Lấy ra từng đối tượng theo chỉ số!
        }
 
        //Chèn thêm 1 đối tượng  tenChen vào vị trí bất kỳ của ArrayList!
        String tenChen = "Nguyen Van Chen";
        listHS.add(2, tenChen);  //Nó sẽ chèn vào vị trí số 2 và đẩy danh sách dài ra sau!
        System.out.println("nDanh sách sau khi bị chèn thêm: ");
        for (int i = 0; i < listHS.size(); i++) {
            System.out.println(listHS.get(i));
        }
 
        //Sửa giá trị của 1 đối tượng, gán nó bằng đối tượng khác theo chỉ số!
        System.out.println("nDanh sách sau khi bị sửa giá trị 1 đối tượng: ");
        String tenSet = "Hoang Van Set";
        listHS.set(3, tenSet); //Sủa phần tử thứ 3 thành phần tử tenSet
        for (int i = 0; i < listHS.size(); i++) {
            System.out.println(listHS.get(i));
        }
 
        //Xóa 1 phần tử trong ArrayList
        System.out.println("nPhần tử thứ 1 đã bị xóa đi");
        listHS.remove(1);
        for (int i = 0; i < listHS.size(); i++) {
            System.out.println(listHS.get(i));
        }
 
        System.out.println("nXóa toàn bộ các phần tử ArrayList");
        listHS.clear();
        for (int i = 0; i < listHS.size(); i++) {
            System.out.println(listHS.get(i));
        } //Sẽ không còn gì để in ra nữa!
    }
}

 

Ví dụ 2:
Tạo 1 danh sách các đối tượng, mỗi đối tượng gồm 2 thuộc tính tên và tuổi. Gán một vài giá trị rồi in ra màn hình! Các phương thức thao tác tương tự như ở ví dụ 1, chỉ có sự khác biệt là cách khai báo mảng, các bạn chú ý nhé!

public class JavaAndroidVn {
 
    public static void main(String[] args) {
        ArrayList listHS = new ArrayList(); // Khai báo 1 đối tượng ArrayList, các phần tử tạo ra từ lớp HocSinh
 
        HocSinh a = new HocSinh();
        a.ten = "Vũ Văn A";
        a.tuoi = 19;
        listHS.add(a); // Thêm đối tượng và listHS
 
        HocSinh b = new HocSinh();
        b.ten = "Vũ Văn B";
        b.tuoi = 20;
        listHS.add(b);
 
        HocSinh c = new HocSinh();
        c.ten = "Vũ Văn C";
        c.tuoi = 22;
        listHS.add(c);
 
        System.out.println("Thông tin các học sinh đã thêm vào ArrayList là: ");
        for(int i=0; i

Ví dụ 3:
Nhập 1 danh sách học sinh từ bàn phím, danh sách có n phần tử. Mỗi phần tử có 2 thuộc tính là tên và tuổi. In toàn bộ danh sách ra màn hình! Các thuộc tính để private

class HocSinh {
 
    private String ten;
    private int tuoi;
 
    public String getTen() {
        return ten;
    }
 
    public void setTen(String ten) {
        this.ten = ten;
    }
 
    public int getTuoi() {
        return tuoi;
    }
 
    public void setTuoi(int tuoi) {
        this.tuoi = tuoi;
    }
}
 
public class JavaAndroidVn {
 
    public static void main(String[] args) {
        ArrayList listHS = new ArrayList(); // Khai báo 1 đối tượng ArrayList, các phần tử tạo ra từ lớp HocSinh
 
        Scanner input = new Scanner(System.in);
        System.out.println("Nhập số học sinh: ");
        int n = input.nextInt();
 
 
        for (int i = 0; i < n; i++) {
            HocSinh x = new HocSinh(); //Tạo đối tượng x để lưu tạm thời dữ liệu
            System.out.println("Học sinh thứ " + i + ": ");
            input.nextLine(); //Dòng này tránh bị trượt dòng!
 
            System.out.print("Tên: ");
            String tenX = input.nextLine();
 
            System.out.print("Tuổi: ");
            int tuoiX = input.nextInt();
 
            x.setTen(tenX);
            x.setTuoi(tuoiX);
            listHS.add(x);  // Thêm đối dữ liệu về x vào trong ArrayList
        }
 
        System.out.println("Thông tin danh sách vừa nhập vào là: ");
        for (int i = 0; i < listHS.size(); i++) {
            System.out.print("Học sinh thứ " + i);
            System.out.print(" - Tên " + listHS.get(i).getTen() + " Tuổi: " + listHS.get(i).getTuoi()+"n");
        }
    }
}