ARRAYLIST
ARRAYLIST
Được dùng nhiều cho những thông tin ít thay đổi thường
là dùng trong tra cứu vì nó các tính năng chỉ mục. Giúp
truy cập nhanh hơn.
Là sự kết hợp giữa mảng và list.
Các phương thức thông dụng trong ArrayList
Add, remove
BÀI TẬP XÂY DỰNG ARRAYLIST CƠ BẢN
3/25/2015
Đọc hiểu và xây dựng code
ở trang 260, 261
Thạc sỹ: Trần Lê Như Quỳnh
BÀI TẬP VẬN DỤNG ARRAYLIST ĐƢỢC
DỰNG SẴN TRONG JAVA COLLECTION
FRAMEWORK
1.
2.
3.
4.
Cho file danhsachTrungthuong.txt.
Viết chương trình đọc file này vào trong ArrayList.
Viết hàm ngẫu nhiên cho chạy tìm ra người trúng
thưởng.
Viết hàm đảo ngược danh sách
Viết hàm tìm ra người có tên trùng với tên nhận vào
HƢỚNG DẪN THỰC HÀNH
Xây dựng một lớp ArrayListUtils, trong đó có xây dựng các phương thức ở dạng static.
1.
Phƣơng thức load(String url)load tất cả dữ liệu từ một file trả về tên một ArrayList.
public static ArrayList load(String urlToFile){
ArrayList result = new ArrayList();
try{
File file = new File(urlToFile);
FileReader reader = new FileReader(file);
BufferedReader in = new BufferedReader(reader);
String name = in.readLine();
while(name != null){
result.add(name);
name= in.readLine();
}
}
catch(Exception e){
}
return result;
}
2.
Phƣơng thức load_ByFullName(String url, String ten)load tên và số thứ tự(vị trí 1
N) của tên trong danh sách.
HƢỚNG DẪN THỰC HÀNH (TT)
3.
4.
Viết phương thức load_BySize(String url, int size) chỉ
load lên những dòng thỏa điều kiện về size và bỏ vào
trong ArrayList.
Từ phần dữ liệu ArrayList đã đọc lên test các phương
thức add(), remove().
Viết phương thức getInfoOdd(String url) dựa vào
phương thức load() đã viết ở trên để lấy dữ liệu từ file
lên ArrayList rồi sử dụng hàm get(int index) của
ArrayList để lấy ra những dòng thỏa điều kiện là ở vị
trí lẻ.(**Có thể làm bằng cách viết bằng cách lấy vị trí
lẻ trước khi load lên mà không dùng qua phương thức
get() của ArrayList)
3/25/2015
ITERATOR
Thạc sỹ: Trần Lê Như Quỳnh
ITERATOR
Iterator là một đối tượng dịch chuyển tuần tự từ phần tử
này đến phần tử kế tiếp thông qua một cấu trúc
collection, cho phép truy cập tới phần tử của nó. Mỗi
phần tử được kiểm tra true một lần.
Các phương thức đặc trưng của Iterator
Boolean hasNext()
Object next()
Void remove()
THE ITERABLE INTERFACE AND JAVA’S FOREACH LOOP
for(ElementType variable: collection){
loopBody // may refer to ”variable”
}
Iterator<ElementType>iter = collection.iterator( );
while(iter.hasNext( )){
ElementType variable= iter.next( );
loopBody // may refer to ”variable”
}
3/25/2015
Thạc sỹ: Trần Lê Như Quỳnh
IMPLEMENT ITERATOR
3/25/2015
Làm trang pg 7.13
Thạc sỹ: Trần Lê Như Quỳnh
ITERATOR TRONG JAVA COLLECTION
FRAMEWORK
Tạo
một lớp main test
Tạo một mảng chứa các thông tin như sau:
String[] students = new String[] {“Vo Tac Thien”,”Duong Minh
Hoang”,”Luong Son Ba”};
Tạo
list, từ list gọi hàm Iterator để chuyển list
sang Iterator
Tiến hành test trên các phương thức hasNext()
3/25/2015
LIST ITERATOR
Thạc sỹ: Trần Lê Như Quỳnh
LISTITERATOR
Phần
mở rộng kết hợp một số tính năng của List
và Iterator
Void add(Object o) chưa được cài đặt
Boolean hasNext()
Boolean hasPrevious()
Object next()
Int nextIndex()
Object previous()
Int previousIndex()
Void remove() chưa được cài đặt
Void set(Object o)
BÀI TẬP LISTITERATOR
3/25/2015
Thạc sỹ: Trần Lê Như Quỳnh
BÀI TẬP LISTITERATOR
3/25/2015
Thạc sỹ: Trần Lê Như Quỳnh
BÀI TẬP LISTITERATOR
Tạo một lớp có tên HanhTinh.
Private String tenTV;
Private String tenTA;
Private double dientich;
Private double khoiLuong;
Private double chuKy;
Public HanhTinh(String tenTV, String tenTA, double cv, double klg, double cky){
…..
}
Viết hàm toString() cho lop HanhTinh
Tạo một lớp có tên là HTinhIteratorList. Lớp này có constructor nhận vào là một
mảng chứa các đối tượng HanhTinh.
Private IteratorList htIteratorList;
HTinhIteratorList (HanhTinh[ ] dsachHT){
htIteratorList = dsachHT.asList().listIterator();
}
Viết hàm toString() cho lớp HTinhIteratorList
Thực hiện lớp Test với dữ liệu về các hành tinh được cung cấp
BÀI TẬP LISTITERATOR
1.
2.
3.
Viết hàm isContaint(String tenHT)tìm kiếm
xem tên của PlanetIteratorList có chứa hành
tinh nào có tên đó hay ko, trả về boolean.
Viết hàm greaterThan_SizeCV(double size)
trả về một String chứa các tên của các hành
tinh chứa trong PlanetIteratorList.Trong lớp
test, test xem những hành tinh nào có chu vi
lớn hơn chu vi của Trái Đất.
Viết isEqual(double weight) trả về hành tinh
có trọng lượng bằng với trọng lượng đã cho.
BÀI TẬP LISTITERATOR
Viết
hàm getInfo(String tenTA) nhận vào tên của
một hành tinh trả về những thông tin có liên
quan đến hành tinh đó.
Viết hàm getRandomInfo()lấy ra ngẫu nhiên
thông tin về một hành tin.
Viết hàm getInfoPrevious(HanhTinh ht)cho biết
tên hành tin đứng trước tên hành tin nhận vào.
Viết hàm maxCky( )cho biết chu kỳ của hành
tinh nào lớn nhất, trả về tên của hành tinh.