Professional Documents
Culture Documents
ArrayList và Exception
Phần 4
Nội Dung
• Xử lý ngoại lệ/biệt lệ (Exception)
• Từ khóa throw.
• Từ khóa throws.
• Khối lệnh try..catch.
• Từ khóa finally và try..catch.
• Lớp ArrayList
• Khai báo, khởi tạo và các phương thức cơ bản.
• Duyệt danh sách.
• Sắp xếp danh sách.
• Lọc danh sách.
• OOP với lập trình ứng dụng trong Windows.
• Minh họa Microsoft Visual Studio 2010
• Minh họa Luna Eclipse
Từ khóa throw
Trích từ www.w3schools.com:
Một website trình bày các kiến thức dễ hiểu, đơn giản
Ví dụ throw (minh họa ThrowExample.java)
public class MyClass {
static void checkAge(int age) {
if (age < 18) {
throw new ArithmeticException("Access denied - You must be at least 18 years
old.");
}
else {
System.out.println("Access granted - You are old enough!");
}
}
public static void main(String[] args) {
checkAge(15); // Set age to 15 (which is below 18...)
}
}
throw và throws (minh họa ThrowsExample.java)
public class MyClass {
static void checkAge(int age) throws ArithmeticException {
if (age < 18) {
throw new ArithmeticException("Access denied - You must be at least 18 years old.");
}
else {
System.out.println("Access granted - You are old enough!");
}
}
liststr[2]=“Hello”;
num[4]=12;
list[3]= 56L;
dssv[k]= new SinhVien();
Hạn chế
• Mảng chỉ chứa các phần tử cùng 1 kiểu (tuy vậy có thể khai báo mảng
chứa các phần tử lớp Object/lớp cha tính đa hình)
• NLT phải quan tâm đến các chỉ số mảng.
• NLT phải dự báo trước kích cỡ mảng.
• Các thao tác như chèn (đầu/giữa), xóa 1 phần tử thực hiện khó khăn:
Phải viết giải thuật để xứ lý
• Sắp xếp: tang hay giảm, dựa trên 1 tiêu chí hay nhiều tiêu chí phức
tạp, phải thiết kế giải thuật.
• Tìm kiếm phần tử thỏa điều kiện trong danh sách: duyệt từng phần tử
và lọc ra các phần tử thỏa điều kiện.
Về phía người dùng: không thuận lợi!!! NSD chỉ quan tâm kết quả với
yêu cầu đưa ra
Lớp ArrayList (Java 1.8)
Ví dụ ArrayOfLong
import java.util.ArrayList;
import java.util.Collections;
public class ArrayListOfLong {
public static ArrayList<Long> list= new ArrayList<Long>();
static
{
list.add(new Long(20));
list.add(new Long(10));
list.add(new Long(40));
list.add(new Long(30));
}
Duyệt các phần tử trong ArrayList
Có nhiều cách
Cách 1: for(int i=0;i<list.size();i++) System.out.println(list.get(i));
Cách 2: for(Long l: list)System.out.println(l);
Cách 3: list.forEach( l -> {System.out.println(l);} );
Cách 4 Iterator<Long> fr = list.iterator();
while (fr.hasNext()) System.out.println(fr.next());
Nhận xét:
2 và 3 thuận lợi do không quan tâm đến kích thước và vị trí phần tử
khuôn dạng chung
Cách 2: for (<Lớp> <tên đại diện>: <đối tượng ArrayList>) { lệnh; }
Cách 3: <đối tượng ArrayList>.forEach (<tên đại diện> -> { lệnh; } );
Các thao tác trên ArrayList (thêm, chèn)
System.out.println("Chen so 60 vao dau danh sach");
list.add(0,new Long(60)); <Đối tượng ArrayList>.add(vị trí, đối tượng)
<Đối tượng ArrayList>. add(đối tượng)
System.out.println("\nThem so 70 vao cuoi danh sach");
list.add(new Long(70));
kq=list.stream().filter(l-> l.longValue()>35).findAny().orElse(null);
if (kq==null) System.out.println("Khong co so nao > 35 trong list");
Property&Method
ToolBox
Vùng Design
Thay đổi thuộc tính đối tượng
Vùng Design
Property&Method
Mã lệnh tương ứng – Khai báo đối tượng
Mã lệnh tương ứng – Khởi tạo đối tượng
Phương thức button1_Click
namespace WindowsApplication
{
public partial class Form1 : Form
{
public Form1()
{ InitializeComponent(); }
private void button1_Click(object sender, EventArgs e)
{
double kq = Double.Parse(this.txtA.Text) +
Double.Parse(this.txtB.Text);
this.lblKQ.Text = kq.ToString(); }
}
} Project minh họa WindowsApplication
Tạo ứng dụng window với Eclipse
Tạo ứng dụng window với Eclipse
Cửa sổ làm việc (thẻ Design)
Components
Design
(Drag&Drop)
ToolBox
Property&Event
Kéo-Thả các đối tượng để thiết kế
Components
Property&Event
Mã nguồn sau khi thêm các đối tượng (drag-drop)
Thay đổi 1 số thuộc tính cơ bản các đối tượng
Components
Property&Event
Tự bổ sung code cho các đối tượng
Phương thức của btnNewButton