Friday, August 14, 2015

Bài 11 - String class , Array List và Vector (tiếp)

Tiếp tục loạt bài hướng dẫn tiếp theo về ArrayList và Vector.
III. Cách sử dụng ArrayList và Vector
1. ArrayList.
Như các bạn đã trải qua loạt bài hướng dẫn về cách sử dụng mảng (array) . Thì ArrayList là một công cụ rất mạnh về mảng . Nó khác với mảng các bạn đã tìm hiểu ở chỗ nào . Đó chính là ArrayList là một mảng động . Nó có thể co dãn kích thước mảng mà không cần phải khai báo fix cứng size như ban đầu.
Cách khai báo ArrayList như sau :
ArrayList<Object> nameList = new ArrayList<Object>();
Sau đây là các method cung cấp cho ArrayList().
Các bạn có thể tìm hiểu cách sử dụng ArrayList từ bảng này . Hoặc cũng có thể làm các ví dụ để có thể kiểm chứng được cách sử dụng ArrayList.  Một khi các bạn đã sử dụng quen , thì mình tin chắc là các bạn sẽ quên thích cách dùng mảng ngày :P
Ví dụ 1:
 package nosoft.com.demoarrayList;  
 import java.util.ArrayList;  
 public class DemoArrayList {  
  public static void main(String[] args) {  
  ArrayList listHS = new ArrayList(); // create new ArrayList  
  String ten1 = "Tran Van A"; // create object  
  listHS.add(ten1); // add item into listHS  
  String ten2 = "Nguyen Cao C";  
  listHS.add(ten2);  
  String ten3 = "Dinh Tien F";  
  listHS.add(ten3);  
  String ten4 = "Van Dai G";  
  listHS.add(ten4);  
  // add four element  
  // start arraylist is element zero (0)  
  for (int i = 0; i < listHS.size(); i++) { // listHS.size() return size  
        // with arraylist  
   System.out.println(listHS.get(i)); // get element from index  
  }  
  String tenChen = "Nguyen Van Chen";  
  listHS.add(2, tenChen); // insert into index 2  
  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));  
  }  
  // edit 1 object , use index of arraylist  
  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); // changed postion 3  
  for (int i = 0; i < listHS.size(); i++) {  
   System.out.println(listHS.get(i));  
  }  
  // delete 1 element in 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));  
  }  
  //delete all element in arraylist  
  System.out.println("Xó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));  
  } // Null all  
  }  
 }  



Ví dụ 2 : Sắp sếp các phần tử trong ArrayList.
 package nosoft.com.demoarrayList;  
 public class SinhVien {  
  public String hoTen;  
  public int diem;  
 }  
 //Săp xếp list sinh viên  
 package nosoft.com.demoarrayList;  
 import java.util.ArrayList;  
 import java.util.Collections;  
 import java.util.Comparator;  
 import java.util.Scanner;  
 public class SortArrayList {  
  public static void main(String[] args) {  
     Scanner input = new Scanner(System.in);  
     System.out.println("Nhập số sinh viên: ");  
     int n = input.nextInt();  
     ArrayList<SinhVien> listSinhVien = new ArrayList();  
     for (int i = 0; i < n; i++) {  
       input.nextLine();  
       SinhVien sv = new SinhVien();  
       System.out.println("Thông tin sinh viên thứ " + i);  
       System.out.print("Họ và Tên: ");  
       sv.hoTen = input.nextLine();  
       System.out.print("Điểm: ");  
       sv.diem = input.nextInt();  
       listSinhVien.add(sv);  
     }  
     //Sort SinhVien ==>  
     Collections.sort(listSinhVien, new Comparator<SinhVien>() {  
       @Override  
       public int compare(SinhVien sv1, SinhVien sv2) {  
         if (sv1.diem < sv2.diem) {  
           return 1;  
         } else {  
           if (sv1.diem == sv2.diem) {  
             return 0;  
           } else {  
             return -1;  
           }  
         }  
       }  
     });  
     System.out.println("Danh sách sắp xếp theo thứ tự điểm giảm dần là: ");  
     for (int i = 0; i < listSinhVien.size(); i++) {  
       System.out.println("Tên: " + listSinhVien.get(i).hoTen + " Điểm: " + listSinhVien.get(i).diem);  
     }  
   }  
 }  


Các bạn có thể tham khảo thêm cách này để sort ArrayList : here (file SortArrayList2)
Hoặc các bạn có thể tham khảo thêm tài liệu tại : here
2. Vector.
Cũng giống với ArrayList . Vector cũng là một dạng mảng động. 
Cách khai báo:
}Vector vector = new Vector()
Hoặc 
Vector<Object> vector = new Vector<>();
Các method được sử dụng trong vector.
Ví dụ :
 package nosoft.com.vector;  
 import java.util.Enumeration;  
 import java.util.Vector;  
 public class DemoVector {  
  public static void main(String args[]) {  
  // initial capacity is 3, increment is 2  
  Vector vector = new Vector(3, 2);  
  System.out.println("Initial size: " + vector.size());  
  System.out.println("Initial capacity: " + vector.capacity());  
  //add element into Vector  
  vector.addElement(new Integer(1));  
  vector.addElement(new Integer(2));  
  vector.addElement(new Integer(3));  
  vector.addElement(new Integer(4));  
  System.out.println("Capacity after four additions: "  
   + vector.capacity());  
  vector.addElement(new Double(5.45));  
  System.out.println("Current capacity: " + vector.capacity());  
  vector.addElement(new Double(6.08));  
  vector.addElement(new Integer(7));  
  System.out.println("Current capacity: " + vector.capacity());  
  //remove element in 1 index  
  vector.remove(1);   
  vector.addElement(new Float(9.4));  
  vector.addElement(new Integer(10));  
  System.out.println("Current capacity: " + vector.capacity());  
  vector.addElement(new Integer(11));  
  vector.addElement(new Integer(12));  
  System.out.println("First element: " + (Integer) vector.firstElement());  
  System.out.println("Last element: " + (Integer) vector.lastElement());  
  if (vector.contains(new Integer(3)))  
   System.out.println("Vector contains 3.");  
  // enumerate the elements in the vector.  
  Enumeration vEnum = vector.elements();  
  System.out.println("\nElements in vector:");  
  while (vEnum.hasMoreElements())  
   System.out.print(vEnum.nextElement() + " ");  
  System.out.println();  
  }  
 }  



Sau đây là bài tập cho các bạn :D
Bài tập 1:
Một số được gọi là số
thuận nghịch độc nếu ta đọc từ trái sang phải hay từ phải sang trái số đó ta
vẫn nhận được một số giống nhau. Hãy liệt kê tất cả các số thuận nghịch độc có
sáu chữ số (Ví dụ số: 558855).
Bài 2 :
Viết chương trình liệt kê các số nguyên có từ 5 đến 7 chữ số thoả mãn:
- Là số nguyên tố.
- Là số thuận nghịch.
- Mỗi chữ số đều là số nguyên tố
Source code tham khảo : here
Bài 3 : Làm lại bài tập trong bài hướng dấn 10 . Theo vector

No comments:

Post a Comment