Set trong ArrayList Java
Trong bài này, tôi sẽ hướng dẫn đến các bạn tìm hiểu loại Class Collection tiếp theo - đó là ArrayListtrong Java. Nội dung của bài này sẽ mô tả đặc điểm, các phương thức thường dùng của Collection này. Với mỗi phương thức được liệt kê, tôi sẽ đưa ra ví dụ đơn giản để cho các bạn nắm bắt được. Cuối bài này tôi sẽ đưa ra một số bài tập cho các bạn luyện tập! Show 1. Đặc điểmArrayList là một lớp triển khai của List Interface trong Collections Framework nên nó sẽ có một vài đặc điểm và phương thức tương đồng với List. Như đã nói trong bàiTổng quan về Collection trong Java,ArrayList là một Collection kiểu danh sách sử dụng cấu trúc mảng để lưu trữ phần tử.Thứ tự các phần tử dựa theo thứ tự lúc thêm vào và giá trị của các phần tử này có thể trùng nhau. Quảng cáo Như vậy, cả ArrayList và LinkedList đều là lớp triển khai của List Interface. Vậy khi nào chúng ta sẽ sử dụng ArrayList và khi nào chúng ta sẽ sử dụng LinkedList? Chúng ta sẽ sử dụng ArrayList khi ứng dụng của chúng ta cần truy xuất phần tử nhiều hơn cập nhật và xóa phần tử và chúng ta sẽ sử dụng LinkedList khi ứng dụng của chúng ta cần cập nhật và xóa phần tử nhiều hơn là truy cập phần tử. Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
2. Các phương thức phổ biếnTạo mới một ArrayListĐể khai báo một ArrayList,chúng ta cần phải import gói thư việnjava.util.ArrayList của Java. Cú pháp import như sau:
Cú pháp
// Khai báo ArrayList
// thì import gói thư viện java.util.ArrayList
import java.util.ArrayList;
public class TênClass {
// ...
}
Sau đây là ví dụ cáchtạo mới một ArrayListtrong Java:
Ví dụ
public static void main(String[] args) {
// khai báo 1 ArrayList có tên là arrListString
// có kiểu là String
ArrayListNgoài ra, nếu chúng ta đã biết trước số lượng phần tử thì chúng ta có thể khai báo kèm với số lượng phần tử của nó. Ví dụ dưới đây sẽ khai báo một ArrayList có tên là arrListName,kiểu là String và có 10phần tử:
Ví dụ
public static void main(String[] args) {
// khai báo 1 ArrayList có tên là arrListName
// có kiểu là String và có 10 phần tử
ArrayListHiển thị các phần tử có trong ArrayListĐể hiển thị các phần tử có trong ArrayList, chúng ta có các cáchnhư sau: Hiển thị theo tên của ArrayList. Quảng cáo
Ví dụ
public static void main(String[] args) {
// khai báo 1 ArrayList có tên là arrListDouble
// có kiểu là Double và có 10 phần tử
ArrayListKết quả sau khi biên dịch chương trình: Sử dụng vòng lặpforthông thường.
Ví dụ
public static void main(String[] args) {
// khai báo 1 ArrayList có tên là arrListString
// có kiểu là String
ArrayListKết quả sau khi biên dịch chương trình: Sử dụng vòng lặpforcải tiếnduyệt theo đối tượng trong ArrayList.
Ví dụ
public static void main(String[] args) {
// khai báo 1 ArrayList có tên là arrListString
// có kiểu là String
ArrayListKết quả sau khi biên dịch chương trình: Quảng cáo Sử dụng Iterator. Để sử dụng đượcIteratorchúng ta cần phải import gói thư việnjava.util.Iteratorcủa Java
Ví dụ
public static void main(String[] args) {
// khai báo 1 ArrayList có tên là arrListString
// có kiểu là String
ArrayListKết quả sau khi biên dịch chương trình: Sử dụng ListIterator. VìArrayList là một lớp triển khai của List Interface nên nó cũng có thể sử dụng ListIterator để duyệt qua các phần tử của nó. Để sử dụng được ListIterator chúng ta cần phải import gói thư việnjava.util.ListIterator của Java. Quảng cáo
Ví dụ
public static void main(String[] args) {
// khai báo 1 ArrayList có tên là arrListChar
// có kiểu là Character
ArrayListKết quả sau khi biên dịch chương trình: Thêm phần tử vào trong ArrayListThêm phần tử sử dụng phương thức add().
Ví dụ
public static void main(String[] args) {
ArrayListKết quả sau khi biên dịch chương trình: Bên cạnh đó, chúng ta có thể sử dụng phương thứcaddAll()để thêm tất cả các phần tử của một ArrayList khác vào 1 vị trí bất kỳ trong ArrayList đã tồn tại. Ví dụ dưới đây sẽ thêm các phần tử của arrList1vào vị trí số 3trong arrList2:
Ví dụ
public static void main(String[] args) {
ArrayListKết quả sau khi biên dịch chương trình: Truy cập phần tửJava cung cấp cho chúng ta phương thứcget()để truy cập đến 1 phần tử bất kỳ trong ArrayList thông qua chỉ số của phần tử đó. Ví dụ dưới đây sẽ truy cậpphần tử có chỉ số là2trong 1 ArrayList có tên là arrListChar:
Ví dụ
public static void main(String[] args) {
ArrayListKết quả sau khi biên dịch chương trình: Cập nhậtgiá trị của phần tửĐể cập nhật giá trị của phần tử trong ArrayList, Java cung cấp cho chúng ta phương thứcset(index, element), trong đóindexlà chỉ số của phần tử cần cập nhật vàelementlà phần tử mới đểthay thế. Để hiểu kỹ hơn về phương thức này các bạn hãy xem ví dụ sau:
Ví dụ
public static void main(String[] args) {
ArrayListCác bạn thấy trong ví dụ trên, tôi đã tiến hành thay thế giá trị của phần tử có chỉ số là4trong danh sách. Kết quả là chương trình sẽ thay thế giá trị20 của phần tử này thành 204. Kết quả sau khi biên dịch chương trình như sau: Xóa phần tửĐể xóa phần tử trong ArrayList, Java cung cấp cho chúng ta 2 phương thức có sẵn đó là phương thức clear() và phương thức remove(). Phương thức clear(). Phương thức clear() sẽ xóa tất cả các phần tử có trong ArrayList. Sau đây là ví dụ minh họa phương thức này.
Ví dụ
public static void main(String[] args) {
ArrayListKết quả sau khi biên dịch chương trình: Phương thức remove(). Phương thức remove() sẽ xóa phần tử ra khỏi ArrayList theo 2 cách đó làxóa dựa vàochỉ số của phần tửvàxóa trực tiếp phần tử đó(không cần biết đến chỉ số của nó). Ví dụ dưới đây sẽ minh họa 2 cách xóa này:
Ví dụ
public static void main(String[] args) {
ArrayListKết quả sau khi biên dịch chương trình: Tìm kiếm một phần tửĐể tìm kiếm một phần tử trong ArrayList thì chúng ta có 3 phương pháp tìm kiếm như sau: Tìm kiếm trực tiếp phần tử. Để tìm kiếm trực tiếp phần tử, chúng ta sẽ sử dụng phương thứccontains(). Kết quả trả về làtruenếu tìm thấy, ngược lại trả vềfalse.
Cú pháp
boolean contains(giá_trị_phần_tử_cần_tìm);
Ví dụ dưới đây sẽ tìm kiếm phần tử có giá trị = 2trong ArrayList arrListInteger. Nếu tìm thấy thì thông báo "Có phần tử 2 trong arrListInteger.", ngược lại hiển thị thông báo "Không tìm thấy phần tử 2.".
Ví dụ
public static void main(String[] args) {
ArrayListKết quả sau khi biên dịch chương trình: Tìm kiếm vị trí xuất hiện đầu tiên của 1 phần tửtrong ArrayList. Để tìm kiếm vị trí xuất hiện đầu tiên của 1 phần tửtrong ArrayList, chúng ta sẽ sừ dụng phương thứcindexOf(). Kết quả của phương thức này sẽ trả về chỉ sốxuất hiện đầu tiên của phần tử đó trong ArrayList, ngược lại nếu không tìm thấy trả về -1.
Cú pháp
int indexOf(giá_trị_phần_tử_cần_tìm);
Ví dụ
public static void main(String[] args) {
ArrayListKết quả sau khi biên dịch chương trình: Tìm kiếm vị trí xuất hiện cuối cùngcủa 1 phần tửtrong List. Để tìm kiếmvị trí xuất hiện cuối cùngcủa 1 phần tửtrong ArrayList, chúng ta sẽ sừ dụng phương thứclastIndexOf(). Kết quả của phương thức này sẽ trả về chỉ sốxuất hiện cuối cùngcủa phần tử đó trong ArrayList, ngược lại nếu không tìm thấytrả về -1.
Cú pháp
int lastIndexOf(giá_trị_phần_tử_cần_tìm);
Ví dụ
public static void main(String[] args) {
ArrayListKết quả sau khi biên dịch chương trình: Chuyển ArrayList sang Array (mảng)Java cung cấp cho chúng ta phương thức toArray() để chuyển đổi một ArrayList sang mảng tương ứng. Sau đây là ví dụ minh họa phương thức này:
Ví dụ
public static void main(String[] args) {
ArrayListKết quả sau khi biên dịch chương trình: 3. Lời kếtTrong bài này, tôi đã giới thiệu cho các bạn đặc điểm, các phương thức thường dùng của ArrayList. Sang bài sau chúng ta sẽ tiếp tục tìm hiểu 1 loại Class Collection tiếp theo đó là HashSet trong Java. Các bạn theo dõi nhé! |