14 June 2016

Bài 27: ArrayList trong Java (1)

ArrayListWith5Points
- 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 mảng kiểu 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!
PHP:
package javaandroidvn;
 
import java.util.ArrayList;

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 0listHS.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(2tenChen);  //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 0listHS.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(3tenSet); //Sủa phần tử thứ 3 thành phần tử tenSet
        
for (int i 0listHS.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 0listHS.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 0listHS.size(); i++) {
            
System.out.println(listHS.get(i));
        } 
//Sẽ không còn gì để in ra nữa!
    
}
}
Ví dụ 2:
Tạo 1 mảng 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é!
PHP:
package javaandroidvn;
 
import java.util.ArrayList;
class 
HocSinh{
    public 
String ten;
    public 
int tuoi;
}
public class 
JavaAndroidVn {

    public static 
void main(String[] args) {
        
ArrayList<HocSinhlistHS = 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=0i<listHS.size(); i++){
            
System.out.println("Tên: "+listHS.get(i).ten+" Tuổi: "+listHS.get(i).tuoi);
        }

    }
}
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
PHP:
package javaandroidvn;
 
import java.util.ArrayList;import java.util.Scanner;

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<HocSinhlistHS = 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 0ni++) {
            
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ứ " ": ");
            
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 0listHS.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");
        }
    }
}
Bài này mình giới thiệu chút vậy thôi nhé, bài sau mình sẽ viết tiếp về ArrayList, nó còn khá nhiều cái hay!

Nguồn : Android.vn

0 nhận xét:

Post a Comment

 

BACK TO TOP

Xuống cuối trang