Java - Viết chương trình tương tác với 2 ArrayList.
Viết chương trình thực hiện các yêu cầu sau:
- Tạo 2
ArrayList:ArrayList1 chứa các phần tử có kiểu chuỗi vàArrayList2 chứa các phần tử là số nguyên. Sau đó nhập vào 5 phần tử cho 2ArrayListnày, - Hiển thị các phần tử của 2
ArrayListnày sử dụngIterator. - Tìm kiếm vị trí xuất hiện đầu tiên và cuối cùng của 1 phần tử bất kỳ trong
ArrayList1. Nếu không tìm thấy phần tử đó thì hiển thị thông báo không tìm thấy. - Tạo 1
Listcó các phần tử được tách từ vị trí số 3 trongArrayList2. - Đảo ngược các phần tử trong 2
ArrayListnày. - Xáo trộn các phần tử trong
ArrayList1 và hiển thị lạiArrayListnày sau khi xáo trộn. - Chuyển
ArrayList2 thành mảng và hiển thị các phần tử của mảng.
Bài giải
-------------------- ######## --------------------
Hướng dẫn:

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Để tách 1 ArrayList thành 1 List con, chúng ta sẽ sử dụng phương thức subList().
Cú pháp
subList(int fromIndex, int toIndex);
, trong đó fromIndex là vị trí bắt đầu lấy và toIndex là vị trí kết thúc. Phương thức này sẽ trả về 1 List có các phần tử nằm trong đoạn [fromIndex, toIndex) của ArrayList cần tách.
Bài viết này được đăng tại [free tuts .net]
Bài giải
public static void main(String[] args) {
String str; // phần tử của ArrayList 1
int number; // phần tử của ArrayList 2
Scanner scanner = new Scanner(System.in);
// tạo 2 ArrayList mới
ArrayList<String> arrListA = new ArrayList<>();
ArrayList<Integer> arrListB = new ArrayList<>();
// nhập vào 5 phần tử cho 2 ArrayList này
System.out.println("Nhập phần tử là các chuỗi cho ArrayList 1: ");
for (int i = 0; i < 5; i++) {
System.out.print("Nhập phần tử thứ " + i +": ");
str = scanner.nextLine();
arrListA.add(str);
}
System.out.println("Nhập phần tử là các số nguyên cho ArrayList 2: ");
for (int i = 0; i < 5; i++) {
System.out.print("Nhập phần tử thứ " + i +": ");
number = Integer.parseInt(scanner.nextLine()); // hạn chế hiện tượng trôi lệnh
arrListB.add(number);
}
// hiển thị các phần tử của 2 ArrayList sử dụng Iterator
Iterator<String> iteratorA = arrListA.iterator();
System.out.println("Các phần tử của arrListA là: ");
while (iteratorA.hasNext()) {
System.out.print(iteratorA.next() + "\t");
}
Iterator<Integer> iteratorB = arrListB.iterator();
System.out.println("\nCác phần tử của arrListB là: ");
while (iteratorB.hasNext()) {
System.out.print(iteratorB.next() + "\t");
}
// Tìm kiếm vị trí xuất hiện đầu tiên và cuối cùng
// của 1 phần tử bất kỳ trong arrListA
// trong trường hợp trong ArrayList chỉ có 1 phần tử có giá trị cần tìm
// thì vị trí xuất hiện đầu tiên và cuối cùng của phần tử đó trùng nhau.
System.out.println("\nNhập phần tử cần tìm: ");
String strSearch = scanner.nextLine();
if (arrListA.contains(strSearch)) {
int firstPosition = arrListA.indexOf(strSearch);
int lastPosition = arrListA.lastIndexOf(strSearch);
System.out.println("Vị trí xuất hiện đầu tiên và cuối cùng của " + strSearch
+ " là " + firstPosition + " và " + lastPosition);
} else {
System.out.println("Không tìm thấy phần tử " + strSearch);
}
// Tạo 1 List có các phần tử được tách từ vị trí số 3 trong ArrayList 2.
// sử dụng phương thức subList()
// trong đó 3 là vị trí bắt đầu lấy và kết thúc tại arrListB.size() - 1
List<Integer> subList = arrListB.subList(3, arrListB.size());
System.out.println("Các phần tử có trong subList là: " + subList);
// Đảo ngược các phần tử trong 2 ArrayList này
// sử dụng phương thức Collections.reverse()
Collections.reverse(arrListA);
System.out.println("Các phần tử trong arrListA sau khi đảo ngược: " + arrListA);
Collections.reverse(arrListB);
System.out.println("Các phần tử trong arrListB sau khi đảo ngược: " + arrListB);
// Xáo trộn các phần tử trong ArrayList 1
// sử dụng phương thức Collections.shuffle()
// kết quả của mỗi lần sẽ khác nhau
Collections.shuffle(arrListA);
System.out.println("Các phần tử trong arrListA sau khi xáo trộn: " + arrListA);
// Chuyển ArrayList 2 thành mảng và hiển thị các phần tử của mảng
// sử dụng phương thức toArray()
Object[] array = arrListB.toArray();
System.out.println("Các phần tử của mảng array là: ");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + "\t");
}
}
Kết quả sau khi biên dịch chương trình:
Câu hỏi thường gặp liên quan:
- Java - Tìm và hiển thị phần tử lớn nhất trong 1 ArrayList.
- Java - Viết chương trình tạo 1 ArrayList mới từ 1 ArrayList đã tồn tại.
- Java - Viết chương trình loại bỏ các phần tử trùng nhau trong 1 ArrayList.
- Java - Tính và hiển thị tổng các phần tử của ArrayList.
- Java - Viết chương trình tương tác với 2 ArrayList.

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng