Java - Bài tập tương tác với 2 List

Viết chương trình thực hiện các yêu cầu sau:

  • Khai báo 2 mảng colorscolors2 và thêm các phần tử cho 2 mảng đó.
  • Tạo mới 2 List listlist2 có các phần tử là phần tử của 2 mảng vừa khai báo.
  • Thêm các phần tử có trong list2 vào trong list, sau đó đưa list2 trở về 1 danh sách rỗng (không có phần tử nào) và hiển thị list.
  • Chuyển các phần tử có trong list thành ký tự in hoa và hiển thị lại list đó.
  • Xóa các phần tử trong list từ phần tử thứ 4 đến phần tử thứ 6. Hiển thị lại list sau khi xóa.
  • Đảo ngược list và hiển thị lại list sau khi đảo ngược.

Bài giải

-------------------- ######## --------------------

Để giải bài tập này, chúng ta sẽ sử dụng các phương thức như sau:

  • addAll(): Thêm các phần tử của list này vào trong 1 list khác.
  • set(Element e): Thay thế các phần tử trong list bằng phần tử e
  • subList(int fromIndex, int toIndex): trả về 1 list được tách từ phần tử thứ fromIndex đến phần tử đững trước phần tử thứ toIndex trong 1 list đã tồn tại.
  • previous(): Hiển thị các phần tử trong list theo thứ tự từ phần tử đầu đến phần tử cuối.

Bài giải
public static void main(String[] args) {
	String colors[] = {"black", "yellow", "green", "blue", "violet", "silver"};
	String colors2[] = {"gold", "white", "brown", "blue", "gray", "silver"};
		
	// khai báo 2 List có Class triển khai là LinkedList
	List<String> list = new LinkedList<>();
	List<String> list2 = new LinkedList<>();
		
	// thêm các phần tử có trong 2 mảng
	// vào trong list và list2
	for (int count = 0; count < colors.length; count++) {
		list.add(colors[count]);
		list2.add(colors2[count]);
	}
		
	// thêm các phần tử của list2 vào trong list
	// và list2 trở về null (không có phần tử nào)
	list.addAll(list2);
	list2 = null;
		
	// hiển thị các phần tử có trong list
	System.out.println("Các phần tử có trong list: ");
	for (int count = 0; count < list.size(); count++) {
		System.out.print(list.get(count) + "\t");
	}
		
	// chuyển các phần tử trong list thành chữ hoa
	ListIterator<String> listIterator = list.listIterator();
	while (listIterator.hasNext()) {
		String str = listIterator.next();
		listIterator.set(str.toUpperCase());
	}
	System.out.println("\nCác phần tử có trong list sau khi chuyển đổi: ");
	for (int count = 0; count < list.size(); count++) {
		System.out.print(list.get(count) + "\t");
	}
		
	// xóa phần tử trong phạm vi 4 đến 6 trong list
	// sử dụng phương thức clear()
	list.subList(4, 7).clear();
	System.out.println("\nCác phần tử có trong list sau khi xóa: ");
	for (int count = 0; count < list.size(); count++) {
		System.out.print(list.get(count) + "\t");
	}
		
	// đảo list sử dụng ListIterator
	// listIterator này sẽ trỏ tới phần tử cuối cùng trong list
	listIterator = list.listIterator(list.size());
	System.out.println("\nlist sau khi đảo ngược: ");
	while (listIterator.hasPrevious()) {
		System.out.print(listIterator.previous() + "\t");
	}
}
	

Kết quả sau khi biên dịch chương trình:

Nguồn: freetuts.net