- 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"
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 = 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!
}
}
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<HocSinh> 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<listHS.size(); i++){
System.out.println("Tên: "+listHS.get(i).ten+" Tuổi: "+listHS.get(i).tuoi);
}
}
}
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<HocSinh> 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");
}
}
}
Nguồn : Android.vn
0 nhận xét:
Post a Comment