Chào các bạn đã đến với chủ đề tiếp theo của mình. Hôm nay, mình sẽ tiếp tục tìm hiểu về ArrayList trong Java. Ở bài này, mình sẽ đi qua những nội dung như sau:
Nội dung
- 1. Mảng và ArrayList trong Java
- 2. Khởi tạo ArrayList
- 3. Thêm phần tử vào ArrayList
- 4. Khởi tạo một ArrayList bằng cách sử dụng hàm asList()
- 5. Truy cập tới các phần tử trong ArrayList
- 6. Thay đổi các phần tử trong ArrayList
- 7. Xóa các phần tử trong ArrayList
- 8. Lặp qua một ArrayList
- 9. Xem độ dài ArrayList
- 10. Sắp xếp các phần tử của một ArrayList
- 11. Chuyển ArrayList thành Array trong Java
- 12. Chuyển mảng thành ArrayList trong Java
- 13. Chuyển ArrayList thành String trong Java
- 14. Kiểm tra phần tử tồn tại trong ArrayList
- 15. Các hàm ArrayList khác
- 16. Kết
1. Mảng và ArrayList trong Java
Trước khi đi vào bài này, mình nhắc lại bài Mảng 1 chút. Trong Java, để khai báo mảng, chúng ta sẽ khai báo với cú pháp sau:
String[] names = new String[5];
Với mảng, chúng ta cần khai báo độ dài của một mảng trước khi sử dụng và một khi đã khai báo kích thước của một mảng rồi thì rất khó để thay đổi kích thước đó.
Để xử lý vấn đề này, chúng ta có thể sử dụng lớp ArrayList. Các lớp ArrayList có mặt trong package java.util cho phép chúng ta tạo ra các mảng có thể thay đổi kích thước.
Không giống như mảng, ArrayList (đối tượng của class ArrayList) có thể tự động điều chỉnh kích cỡ của nó khi chúng ta thêm vào hoặc xóa đi các phần tử. Do đó, ArrayList còn được gọi là mảng động.
2. Khởi tạo ArrayList
Lớp ArrayList
được định nghĩa bên trong framework collections của Java, vì vậy để sử dụng Arraylist, trước tiên chúng ta phải nhập gói ArrayList
.
import java.util.ArrayList;
Sau đó, chúng ta có thể tạo một đối tượng của lớp ArrayList
với cú pháp sau:
ArrayList <Type> arrayList = new ArrayList <> ();
Trong đó Type
là kiểu dữ liệu của ArrayList
mà ta muốn tạo
// create Integer type arraylist
ArrayList<Integer> arrayList = new ArrayList<>();
Trong ví dụ trên, chúng ta đã sử dụng Integer, thay vì dùng int. Đó là bởi vì chúng ta không thể sử dụng các kiểu dữ liệu căn bản trong khi tạo một ArrayList. Thay vào đó, chúng ta phải sử dụng các lớp. Ở đây, Integer là lớp wrapper (lớp Wrapper là một cách để sử dụng các kiểu dữ liệu căn bản làm đối tượng) tương ứng của int.
Lưu ý: Chúng ta cũng có thể tạo một ArrayList bằng List Interface. Đó là bởi vì class ArrayList triển khai cho List Interface.
List<String> a = new ArrayList<>();
3. Thêm phần tử vào ArrayList
3.1. Sử dụng hàm add()
Để thêm một phần tử vào ArrayList, chúng ta sử dụng hàm add()
import java.util.ArrayList;
class Main {
public static void main(String[] args){
ArrayList<String> animals = new ArrayList<>();
// Add elements
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("ArrayList: " + animals);
}
}
Kết quả:
ArrayList: [Dog, Cat, Horse]
Lưu ý: Chúng ta tạo một arraylist kiểu
String
nên chỉ có thể chèn các phần tử kiểuString
vào đó.
3.2. Sử dụng chỉ số
Hoặc ta cũng có thể thêm nhiều phần tử vào một ArrayList
bằng cách sử dụng các chỉ số
Ví dụ 1:
import java.util.ArrayList;
class Main {
public static void main(String[] args){
ArrayList<String> animals = new ArrayList<>();
// Add elements
animals.add(0,"Dog");
animals.add(1,"Cat");
animals.add(2,"Horse");
System.out.println("ArrayList: " + animals);
}
}
Kết quả:
ArrayList: [Dog, Cat, Horse]
Ví dụ 2:
import java.util.ArrayList;
class Main {
public static void main(String[] args){
ArrayList<String> animals = new ArrayList<>();
// Add elements
animals.add("Dog");
animals.add("Cat");
System.out.println("Original ArrayList: " + animals);
// add element at the first position
item.add(0, "Horse");
// add element at the fourth position
item.add(3, "Lion");
System.out.println("Updated ArrayList: " + animals);
}
}
Kết quả:
Original ArrayList: [Dog, Cat]
Updated ArrayList: [Dog, Cat, Horse, Lion]
Trong ví dụ trên, chúng ta đã tạo một arraylist và thêm các phần tử Dog
và Cat
.
Sau đó, ta sử dụng một phiên bản khác của add()
để thêm phần tử tại một vị trí xác định.
item.add(0, "Horse")
– chènHorse
tại chỉ số 0 của arraylistitem.add(3, "Lion")
– chènLion
tại chỉ số 3
Lưu ý: Cũng giống như mảng, chỉ số của
ArrayList
bắt đầu từ 0.
4. Khởi tạo một ArrayList bằng cách sử dụng hàm asList()
Khác với mảng, chúng ta không thể khởi tạo ArrayList một cách trực tiếp. Tuy nhiên, chúng ta có thể sử dụng hàm asList() của class Arrays để làm điều đó.
Để sử dụng hàm asList() này, đầu tiên, chúng ta phải import package java.util.Arrays.
Ví dụ:
import java.util.ArrayList;
import java.util.Arrays;
class Main {
public static void main(String[] args) {
// Creating an array list
ArrayList<String> animals = new ArrayList<>(Arrays.asList("Cat", "Cow", "Dog"));
System.out.println("ArrayList: " + animals);
// Access elements of the array list
String element = animals.get(1);
System.out.println("Accessed Element: " + element);
}
}
Kết quả:
ArrayList: [Cat, Cow, Dog]
Accessed Elemenet: Cow
Trong ví dụ trên, hãy chú ý biểu thức:
new ArrayList<>(Arrays.asList(("Cat", "Cow", "Dog"));
Ở đây, trước tiên chúng ta tạo ra một mảng gồm 3 phần tử: ”Cat”, “Cow” và “Dog”. Sau đó, hàm asList() được sử dụng để chuyển đổi mảng thành một ArrayList.
5. Truy cập tới các phần tử trong ArrayList
5.1. Sử dụng hàm get()
Để truy cập ngẫu nhiên các phần tử của ArrayList, chúng ta sử dụng hàm get(). Ví dụ:
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> animals= new ArrayList<>();
// Add elements in the array list
animals.add("Dog");
animals.add("Horse");
animals.add("Cat");
System.out.println("ArrayList: " + animals);
// Get the element from the array list
String str = animals.get(0);
System.out.println("Element at index 0: " + str);
}
}
Kết quả:
ArrayList: [Dog, Horse, Cat]
Element at index 0: Dog
5.2. Sử dụng hàm iterator()
Để truy cập các phần tử của ArrayList một cách tuần tự, chúng ta sử dụng hàm iterator(). Chúng ta phải nhập gói java.util.Iterator để sử dụng hàm này. Ví dụ:
import java.util.ArrayList;
import java.util.Iterator;
class Main {
public static void main(String[] args){
ArrayList<String> animals = new ArrayList<>();
// Add elements in the array list
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
animals.add("Zebra");
// Create an object of Iterator
Iterator<String> iterate = animals.iterator();
System.out.print("ArrayList: ");
// Use methods of Iterator to access elements
while(iterate.hasNext()){
System.out.print(iterate.next());
System.out.print(", ");
}
}
}
Kết quả:
ArrayList: Dog, Cat, Horse, Zebra,
Lưu ý :
- Hàm hasNext() trả về true nếu có một phần tử tiếp theo trong ArrayList.
- Hàm next() trả về phần tử tiếp theo trong ArrayList.
6. Thay đổi các phần tử trong ArrayList
Để thay đổi phần tử của danh sách mảng, chúng ta sử dụng phương thức set() của lớp ArrayList.
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> animals= new ArrayList<>();
// Add elements in the array list
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("ArrayList: " + animals);
// Change the element of the array list
animals.set(2, "Zebra");
System.out.println("Modified ArrayList: " + animals);
}
}
Kết quả:
ArrayList: [Dog, Cat, Horse]
Modified ArrayList: [Dog, Cat, Zebra]
7. Xóa các phần tử trong ArrayList
7.1. Sử dụng hàm remove()
Để xóa một phần tử, chúng ta có thể sử dụng phương thức remove() của lớp ArrayList. Ví dụ:
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> animals = new ArrayList<>();
// Add elements in the array list
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("Initial ArrayList: " + animals);
// Remove element from index 2
String str = animals.remove(2);
System.out.println("Final ArrayList: " + animals);
System. out.println("Removed Element: " + str);
}
}
Kết quả:
Initial ArrayList: [Dog, Cat, Horse]
Final ArrayList: [Dog, Cat]
Removed Element: Horse
7.2. Sử dụng hàm removeAll()
Để xóa bỏ tất cả các phần tử khỏi ArrayList, chúng ta sử dụng hàm removeAll(). Ví dụ:
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> animals = new ArrayList<>();
// Add elements in the ArrayList
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("Initial ArrayList: " + animals);
// Remove all the elements
animals.removeAll(animals);
System.out.println("Final ArrayList: " + animals);
}
}
Kết quả:
Initial ArrayList: [Dog, Cat, Horse]
Final ArrayList: []
7.3. Sử dụng hàm clear()
Chúng ta cũng có thể sử dụng hàm clear() để xóa bỏ tất cả các phần tử khỏi ArrayList. Ví dụ:
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> animals= new ArrayList<>();
// Add elements in the array list
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("Initial ArrayList: " + animals);
// Remove all the elements
animals.clear();
System.out.println("Final ArrayList: " + animals);
}
}
Kết quả:
Initial ArrayList: [Dog, Cat, Horse]
Final ArrayList: []
8. Lặp qua một ArrayList
8.1. Sử dụng vòng lặp for
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
// Creating an array list
ArrayList<String> animals = new ArrayList<>();
animals.add("Cow");
animals.add("Cat");
animals.add("Dog");
System.out.println("ArrayList: " + animals);
// Using for loop
System.out.println("Accessing individual elements: ");
for(int i = 0; i < animals.size(); i++) {
System.out.print(animals.get(i));
System.out.print(", ");
}
}
}
Kết quả:
ArrayList: [Cow, Cat, Dog]
Accessing individual elements:
Cow, Cat, Dog,
8.2. Sử dụng vòng lặp forEach
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
// Creating an array list
ArrayList<String> animals = new ArrayList<>();
animals.add("Cow");
animals.add("Cat");
animals.add("Dog");
System.out.println("ArrayList: " + animals);
// Using forEach loop
System.out.println("Accessing individual elements: ");
for(String animal : animals) {
System.out.print(animal);
System.out.print(", ");
}
}
}
Kết quả:
ArrayList: [Cow, Cat, Dog]
Accessing individual elements:
Cow, Cat, Dog,
9. Xem độ dài ArrayList
Để có được độ dài của ArrayList, chúng ta sử dụng hàm size(). Ví dụ:
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> animals= new ArrayList<>();
// Adding elements in the arrayList
animals.add("Dog");
animals.add("Horse");
animals.add("Cat");
System.out.println("ArrayList: " + animals);
// getting the size of the arrayList
System.out.println("Size: " + animals.size());
}
}
Kết quả:
ArrayList: [Dog, Horse, Cat]
Size: 3
10. Sắp xếp các phần tử của một ArrayList
Để sắp xếp các phần tử của một ArrayList, chúng ta sử dụng hàm sort() của class Collections. Để sử dụng nó, trước tiên, chúng ta phải nhập gói java.util.Collections.
Theo mặc định, việc sắp xếp xảy ra theo thứ tự bảng chữ cái hoặc thứ tự sốtheo chiều tăng dần. Ví dụ:
import java.util.ArrayList;
import java.util.Collections;
class Main {
public static void main(String[] args){
ArrayList<String> animals= new ArrayList<>();
// Add elements in the array list
animals.add("Horse");
animals.add("Zebra");
animals.add("Dog");
animals.add("Cat");
System.out.println("Unsorted ArrayList: " + animals);
// Sort the array list
Collections.sort(animals);
System.out.println("Sorted ArrayList: " + animals);
}
}
Kết quả:
Unsorted ArrayList: [Horse, Zebra, Dog, Cat]
Sorted ArrayList: [Cat, Dog, Horse, Zebra]
11. Chuyển ArrayList thành Array trong Java
Trong Java, chúng ta có thể chuyển đổi ArrayList thành mảng bằng hàm toArray(). Ví dụ:
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> animals= new ArrayList<>();
// Add elements in the array list
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("ArrayList: " + animals);
// Create a new array of String type
String[] arr = new String[animals.size()];
// Convert ArrayList into an array
animals.toArray(arr);
System.out.print("Array: ");
for(String item:arr) {
System.out.print(item+", ");
}
}
}
Kết quả:
ArrayList: [Dog, Cat, Horse]
Array: Dog, Cat, Horse,
12. Chuyển mảng thành ArrayList trong Java
Chúng ta cũng có thể chuyển đổi mảng thành ArrayList. Để làm điều đó, chúng ta có thể sử dụng hàm asList() của class Array.
Để sử dụng hàm asList(), trước tiên, chúng ta phải import package java.util.Arrays. Ví dụ:
import java.util.ArrayList;
import java.util.Arrays;
class Main {
public static void main(String[] args) {
// Create an array of String type
String[] arr = {"Dog", "Cat", "Horse"};
System.out.print("Array: ");
// Print array
for(String str: arr) {
System.out.print(str);
System.out.print(" ");
}
// Create an ArrayList from an array
ArrayList<String> animals = new ArrayList<>(Arrays.asList(arr));
System.out.println("\nArrayList: " + animals);
}
}
Kết quả:
Array: Dog Cat Horse
ArrayList: [Dog, Cat, Horse]
13. Chuyển ArrayList thành String trong Java
Để chuyển đổi một ArrayList thành String, chúng ta có thể sử dụng hàm toString(). Ví dụ:
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> animals = new ArrayList<>();
// Add elements in the ArrayList
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("ArrayList: " + animals);
// Convert ArrayList into an String
String str = animals.toString();
System.out.println("String: " + str);
}
}
Kết quả:
ArrayList: [Dog, Cat, Horse]
String: [Dog, Cat, Horse]
Lưu ý: hàm toString() chuyển đổi toàn bộ ArrayList thành một String.
14. Kiểm tra phần tử tồn tại trong ArrayList
Để kiểm tra phần tử có tồn tại trong ArrayList hay không, chúng ta sẽ sử dụng hàm contains(). Nếu giá trị tồn tại trong ArrayList, kết quả sẽ trả về true. Ngược lại, sẽ trả về false. Ví dụ:
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> animals = new ArrayList<>();
// Add elements in the ArrayList
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("ArrayList: " + animals);
// Check value 'Dog' exist in ArrayList
boolean isExisted = animals.contains("Dog");
System.out.println(("isExisted = " + isExisted));
}
}
Kết quả:
ArrayList: [Dog, Cat, Horse]
isExisted = true
15. Các hàm ArrayList khác
Hàm | Mô tả |
---|---|
clone() | Tạo một ArrayList mới với cùng phần tử, kích thước và dung lượng. |
contains() | Tìm kiếm ArrayList cho phần tử đã chỉ định và trả về kết quả boolean. |
ensureCapacity() | Chỉ định tổng phần tử mà ArrayList có thể chứa. |
isEmpty() | Kiểm tra nếu ArrayList trống. |
indexOf() | Tìm kiếm một phần tử được chỉ định trong ArrayList và trả về chỉ số của phần tử. |
trimToSize() | Giảm dung lượng của một ArrayList về kích thước hiện tại của nó. |
16. Kết
Như vậy chúng ta đã tìm hiểu về kiểu dữ liệu ArrayList và các phương thức xử lý của nó. Cảm ơn các bạn đã theo dõi bài viết của mình. Chúc các bạn thành công. Hẹn gặp lại các bạn ở những chủ đề tiếp theo. Bái bai.
Nguồn: https://cafedev.vn/tu-hoc-java-class-arraylist-trong-java/