List en Java
In Java, the List interface is an ordered collection that allows us to store and access elements sequentially. It extends the Collection interface. Show
Classes that Implement ListSince List is an interface, we cannot create objects from it. In order to use functionalities of the List interface, we can use these classes:
These classes are defined in the Collections framework and implement the List interface. How to use List?In Java, we must import java.util.List package in order to use List. // ArrayList implementation of List ListHere, we have created objects list1 and list2 of classes ArrayList and LinkedList. These objects can use the functionalities of the List interface. Methods of ListThe List interface includes all the methods of the Collection interface. Its because Collection is a super interface of List. Some of the commonly used methods of the Collection interface that's also available in the List interface are:
Implementation of the List Interface1. Implementing the ArrayList Class import java.util.List; import java.util.ArrayList; class Main { public static void main(String[] args) { // Creating list using the ArrayList class ListOutput List: [1, 2, 3] Accessed Element: 3 Removed Element: 2To learn more about ArrayList, visit Java ArrayList. 2. Implementing the LinkedList Class import java.util.List; import java.util.LinkedList; class Main { public static void main(String[] args) { // Creating list using the LinkedList class ListOutput List: [1, 2, 3] Accessed Element: 3 Position of 3 is 1 Removed Element: 2To learn more about LinkedList, visit Java LinkedList. Java List vs. SetBoth the List interface and the Set interface inherits the Collection interface. However, there exists some difference between them.
Now that we know what List is, we will see its implementations in ArrayList and LinkedList classes in detail in the next tutorials. Trong bài viết này mình sẽ hướng dẫn bạn bắt đầu tìm hiểu về Collection trong Java, đầu tiên là tìm hiểu về List trong Java.
Nếu bạn mới bắt đầu học Java thì mình nghĩ là bạn nên học theo tuần tự. Bài viết TỰ HỌC JAVAnày sẽ giúp bạn học đầy đủ kiến thức trước khi bắt đầu bài học này. Bài học này bao gồm 6 chủ đề chính:
Chúng ta sẽ đi theo từng bước để chắc chắn là bạn không bỏ sót kiến thức nào để có thể tiếp tục hiểu các kiến thức sẽ được giới thiệu / giải thích trong bài viết List trong Java này. Từng phần, từng phần sẽ bổ sung cho nhau để đảm bảo bạn hiểu rõ. Vì thế đừng vội vàng quá. Nào, hãy bắt đầu với phần đầu tiên. PHẦN 1: JAVA COLLECTIONS FRAMEWORK LÀ GÌ?Nền tảng Java (Java platform) có bao gồm một collections framework. Frameowork này cung cấp một tập hợp các interface và các class để thực hiện các cấu trúc dữ liệu và thuật toán khác nhau. Ví dụ, class LinkedList của collections frameowrk cung cấp việc triển khai cấu trúc dữ liệudoubly-linked list. 1.1. INTERFACE CỦA COLLECTONS FRAMEWORKJava Collections Framework cung cấp các interface khác nhau. Các interface này bao gồm một số phương thức để thực hiện các hoạt động khác nhau.
Chúng ta sẽ tìm hiểu chi tiết về các interface này, các subinteface của chúng và triển khai trong các class khác nhau trong các phần tiếp theo. Bây giờ, chúng ta hãy tìm hiểu ngắn gọn về các interface thường được sử dụng. 1.2. TÌM HIỂU CƠ BẢN VỀ JAVA COLLECTIONS INTERFACE?Collection interface là root interface (interface gốc) của hệ thống phân cấp collections framework. Java không cung cấp các triển khai trực tiếp của Collection interface nhưng cung cấp các triển khai của các subinterface của nó như List, Set và Queue. COLLECTIONS FRAMEWORK KHÁC VỚI COLLECTION INTERFACE Ở CHỖ NÀO?Mọi người thường bị nhầm lẫn giữa Collection Framework và Collection Interface. Collection Interface là root interface của Framework. Và Framework này cũng bao gồm các Interface khác như: Map và Iterator. Các interface này cũng có thể có subinterface. 1.3. SUBINTERFACES CỦA COLLECTION INTERFACE LÀ GÌ?Như đã đề cập trước đó, Collection Interface bao gồm các subinterface được triển khai bởi các Java class. Tất cả các phương thức của Collection Interface cũng có mặt trong các subinterface của nó. Dưới đây là các subinterface của Collection Interface: LIST INTEFACE TRONG JAVAList interfacetrong Java là một tập hợp theo thứ tự cho phép chúng ta thêm và xóa các phần tử như một mảng. SET INTERFACE TRONG JAVASet Interfacetrong Java cho phép chúng ta lưu trữ các phần tử trong các tập hợp khác nhau tương tự như tập hợp trong toán học. Set không thể có các phần tử trùng lặp. QUEUE INTERFACE TRONG JAVAQueue Interface trong Java được sử dụng khi chúng ta muốn lưu trữ và truy cập các phần tử theo cách First In, First Out (Vào trước thì Ra trước). 1.4. JAVA MAP INTERFACE LÀ GÌ?Trong Java, Map Interface cho phép các phần tử được lưu trữ trong các cặp key / value. Key là tên duy nhất có thể được sử dụng để truy cập một phần tử cụ thể trong map Và, mỗi key có một giá trị liên quan đến nó. 1.5. JAVA ITERATOR INTERFACE LÀ GÌ?Trong Java, Iterator Interface cung cấp các phương thức có thể được sử dụng để truy cập các phần tử của các tập hợp. 1.6. TẠI SAO CHÚNG TA LẠI SỬ DỤNG COLLECTIONS FRAMEOWKR TRONG JAVA?Java Collections Framework cung cấp các cấu trúc dữ liệu và thuật toán khác nhau có thể được sử dụng trực tiếp. Điều này có hai ưu điểm chính:
Hơn nữa, Collections Framework cho phép chúng ta sử dụng cấu trúc dữ liệu cụ thể cho một loại dữ liệu cụ thể để tối ưu hóa. Đây là vài ví dụ:
1.7. VÍ DỤ VỀ SỬ DỤNG ArrayLisst CỦA COLLECTIONSTrước khi chúng ta kết thúc phần này, hãy lấy một ví dụ về class ArrayList của Collections Framework. Class ArrayList cho phép chúng ta tạo các mảng có thể thay đổi kích thước. Class này là khai triển Interface List (là subinteface của Collections interface).
importjava.util.ArrayList; classMain{ publicstaticvoidmain(String[]args){ ArrayList<String>dongVat=newArrayList<>(); //Thêmphầntử dongVat.add("Chó"); dongVat.add("Mèo"); dongVat.add("Gà"); System.out.println("ArrayList:"+dongVat); }
} Kết quả khi chạy chương trình:
Như bạn thấy, chúng ta tạo đối tượng dongVat từ class ArrayList. Bây giờ dongVat là một mảng có thể chứa các phần tử là String. Tuy nhiên, hãy nhìn kỹ, chúng ta không khai báo số lượng phần tử màdongVat có thể chứa. Nhưng khi chúng ta thêm phần tử vào mà không hề bị lỗi như mảng Java thông thường. Ok, bây giờ bạn đã hiểu sơ lược về Java Collections Framework và tại sao chúng ta lại sử dụng nó. Hãy cùng sang phần tiếp theo. PHẦN 2: JAVA COLLECTION INTERFACE LÀ GÌ?Trong phần này, chúng ta sẽ tìm hiểu thêm một chút về Java Collections Interface và các subinterface của nó. Trước tiên hãy nhìn vào ảnh minh họa dưới đây:
Sơ đồ Java Collections Interfaces Collection Inteface là root inteface của Java Collections Framework. Không có triển khai trực tiếp của interface này. Tuy nhiên, nó được triển khai thông qua các subinterface của nó như List, Set và Queue. Ví dụ, class ArrayList triển khai List Interface là subinterface của Collections Interface. 2.1. SUBINTERFACE CỦA COLLECTIONNhư đã đề cập ở trên, Collection Interface bao gồm các subinterface được triển khai bởi các class khác nhau trong Java. LIST INTEFACEList interface là một tập hợp có thứ tự cho phép chúng ta thêm và xóa các phần tử như một mảng. SET INRERFACESet interface cho phép chúng ta lưu trữ các phần tử trong các tập hợp khác nhau tương tự như tập hợp trong toán học. Set không thể có các phần tử trùng lặp. QUEUE INTERFACEQueue interface được sử dụng khi chúng ta muốn lưu trữ và truy cập các phần tử theo cách Nhập trước, Xuất trước. 2.2. CÁC PHƯƠNG THỨC CỦA COLLECTIONCollection Interface có chứa nhiều phương thức khác nhau có thể được sử dụng để thực hiện các hoạt động khác nhau trên các đối tượng. Các phương thức này có sẵn trong tất cả các subinterface của nó.
Tiếp theo, chúng ta sẽ bắt đầu đi vào chủ để chính trong bài viết này. PHẦN 3: LIST TRONG JAVATrong phần này, chúng ta sẽ tìm hiểu về List interface trong Java và các phương thức của nó. Trong Java, List interface là một tập hợp được sắp xếp cho phép chúng ta lưu trữ và truy cập các phần tử theo tuần tự. List interface mở rộng (kế thừa) Collection interface. 3.1. CÁC CLASS TRIỂN KHAI LIST TRONG JAVAVì List là một interface, nên chúng ta không thể tạo các đối tượng từ nó. Để sử dụng các tính năng của List interface, chúng ta có thể sử dụng các class sau:
Các class này được định nghĩa trong Collections Framework và triển khai List interface. 3.2. LÀM THẾ NÀO ĐỂ SỬ DỤNG LIST TRONG JAVA?Trong Java, chúng ta phải import package là java.util.List để sử dụng được List.
List<String>list1=newArrayList<>(); //LinkedListtriểnkhaiList
List<String>list2=newLinkedList<>(); Ở đây, chúng ta đã tạo các đối tượng list1 và list2 của class ArrayList và LinkedList. Các đối tượng này có thể sử dụng các tính năng của List interface. 3.3. CÁC PHƯƠNG THỨC CỦA LISTList interface bao gồm tất cả các phương thức của Collection interface. Bởi vì Collection là một Super interface của List. Một số phương thức thường được sử dụng của Collection interface cũng có sẵn trong List interface là:
3.4. VÍ DỤ TRIỂN KHAI CỦA LIST INTERFACE TRONG JAVANhư đã nói ở trên, List interface có các class ArrayList, LinkedList, Vector và Stack. Chúng ta sẽ thử xem ví dụ triển khai List interface với ArrayList và LinkedList trước. VÍ DỤ TRIỂN KHAI CLASS ARRAYLIST TRONG JAVAHãy cùng xem ví dụ bên dưới đây để hiểu cách sử dụng ArrayList:
importjava.util.List; importjava.util.ArrayList; classMain{ publicstaticvoidmain(String[]args){ //TạomộtlistnumberssửdụngclassArrayList //numberschứaInteger List<Integer>numbers=newArrayList<>(); //Thêmphầntửvàotronglist numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("List:"+numbers); //Truycậpphầntửtừlist intnumber=numbers.get(2); System.out.println("Truycậpphầntử:"+number); //Loạibỏphầntửkhỏilist intremovedNumber=numbers.remove(1); System.out.println("Loạibỏphầntử:"+removedNumber); }
} Kết quả khi chạy chương trình trên:
VÍ DỤ TRIỂN KHAI CLASS LINKEDLIST TRONG JAVAChúng ta có ví dụ đơn giản về LinkedList trong Java như sau:
importjava.util.List; importjava.util.LinkedList; classMain{ publicstaticvoidmain(String[]args){ //TạolistnumberssửdụngLinkedList List<Integer>numbers=newLinkedList<>(); //Thêmphầntửvàolist numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("List:"+numbers); //Truycậpphầntửtừlist intnumber=numbers.get(2); System.out.println("Truycậpphầntử:"+number); //SửdụngphươngthứcindexOf() intindex=numbers.indexOf(2); System.out.println("Vịtrícủaphầntử2là:"+index); //Loạibỏphầntửkhỏilist intremovedNumber=numbers.remove(1); System.out.println("Loạibỏphầntử:"+removedNumber); }
} Kết quả khi chạy chương trình trên là:
3.5. TRONG JAVA LIST KHÁC SET Ở ĐIỂM NÀO?Cả List interface và Set interface đều kế thừa Collections Framework. Tuy nhiên, có một số khác biệt giữa chúng.
Bây giờ chúng ta đã biết List là gì, chúng ta sẽ thấy các triển khai của nó trong các lớp ArrayList và LinkedList một cách chi tiết trong các phần tiếp theo. PHẦN 4: ARRAYLIST TRONG JAVATrong phần này, chúng ta sẽ tìm hiểu về class ArrayList trong Java. Chúng ta sẽ tìm hiểu về cách hoạt động và các phương thức ArrayList khác nhau với sự trợ giúp của các ví dụ. ClassArrayList là một triển khai của List interface cho phép chúng ta tạo các mảng có thể thay đổi kích thước.
4.1. ARRAYLIST KHÁC ARRAY NHƯ THẾ NÀO?Trong Java, chúng ta cần khai báo kích thước của một mảng trước khi có thể sử dụng nó. Khi kích thước của một mảng được khai báo, bạn khó có thể thay đổi nó. Để xử lý vấn đề này, chúng ta có thể sử dụng class ArrayList. Class ArrayList có sẵn trong java.util package cho phép chúng ta tạo các mảng có thể thay đổi kích thước. Không giống như mảng thông thường, Array list (đối tượng của lớp ArrayList) có thể tự động điều chỉnh kích thước của nó khi chúng ta thêm hoặc xóa các phần tử khỏi nó. Do đó, Array list còn được gọi là Dynamic array (Mảng động). 4.2. CÁCH TẠO RA MỘT ARRAYLIST TRONG JAVAĐây là cách chúng ta có thể tạo Array list trong Java:
Ở đây, Type chỉ định kiểu dữ liệu mà Array list có thể chứa.
ArrayList<Integer>arrayList=newArrayList<>(); //TạomộtArrayListchứaString
ArrayList<String>arrayList=newArrayList<>(); Trong chương trình trên, chúng ta đã sử dụng Integer và String. Ở đây, Integer là wrapper class (class bao bọc) tương tứng của kiểu int. Một wrapper class là một lớp bao bọc một kiểu dữ liệu nguyên thủy. Ví dụ, class Integer bao bọc kiểu int, class Floatbao bọc kiểu float, v.v.
Lưu ý! Trong trường hợp của String, String là một class và không wrapper class. Do đó, chúng ta sử dụng chính nó. Chúng tôi cũng có thể tạo Array list bằng cách sử dụng List interface. Bởi vì class ArrayList là một triển khai của List interface.
4.3. CÁC PHƯƠNG THỨC CỦA ARRAYLIST TRONG JAVAArrayListcó cung cấp các phương thức khác nhau cho phép chúng ta thực hiện thao tác với các Array list. THÊM PHẦN TỬ VÀO MỘT ARRAYLIST TRONG JAVACách #1: Sử dụng phương thức add() Để thêm một phần tử vào một ArrayList, chúng ta sử dụng phương thức add(). Ví dụ:
classMain{ publicstaticvoidmain(String[]args){ ArrayList<String>dongVat=newArrayList<>(); //ThêmcácphầntửvàoArrayListbằngadd() dongVat.add("Chó"); dongVat.add("Mèo"); dongVat.add("Gà"); System.out.println("ArrayList:"+dongVat); }
} Kết quả khi chạy chương trình là:
Cách #2: Sử dụng chỉ số index. Chúng ta cũng có thể thêm các phần tử vào một Array list bằng cách sử dụng chỉ số index. Ví dụ:
classMain{ publicstaticvoidmain(String[]args){ ArrayList<String>dongVat=newArrayList<>(); //Thêmphầntửsửdụngindex dongVat.add(0,"Chó"); dongVat.add(1,"Mèo"); dongVat.add(2,"Gà"); System.out.println("ArrayList:"+dongVat); }
} Khi chạy chương trình, kết quả nhận được là:
Cách #3: Thêm phần tử của Array list này vào một Array list khác Để thêm tất cả các phần tử của Array list này vào Array list mới, chúng ta sử dụng phương thức addAll(). Ví dụ:
classMain{ publicstaticvoidmain(String[]args){ ArrayList<String>thuNuoi=newArrayList<>(); thuNuoi.add("Chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); System.out.println("Thúnuôi:"+thuNuoi); ArrayList<String>dongVat=newArrayList<>(); dongVat.add("Cáxấu"); //ThêmtấtcảphầntửcủathuNuoivàodongVat dongVat.addAll(thuNuoi); System.out.println("Độngvật:"+dongVat); }
} Kết quả khi chạy chương trình:
KHỞI TẠO MỘT ARRAYLIST SỬ DỤNG ASLIST()Không giống như mảng, chúng ta không thể khởi tạo trực tiếp Array list. Tuy nhiên, chúng ta có thể sử dụng phương thức asList() của class Arrays để đạt được kết quả tương tự. Để sử dụng phương thức asList(), trước tiên chúng ta phải import package java.util.Arrays. Hãy xem ví dụ sau:
importjava.util.Arrays; classMain{ publicstaticvoidmain(String[]args){ //TạomộtArraylist ArrayList<String>thuNuoi=newArrayList<>(Arrays.asList("Chó","Mèo","Gà")); System.out.println("Thúnuôi:"+thuNuoi); //TruycậpphầntửcủaArraylist StringphanTuMang=thuNuoi.get(1); System.out.println("Truycậpphầntử:"+phanTuMang); }
} Khi chạy chương trình, kết quả nhận được là:
Trong ví dụ trên, hãy để ý biểu thức:
Ở đây, trước tiên chúng ta đã tạo ra một mảng gồm 3 phần tử: "Chó", "Mèo", "Gà". Sau đó, phương thức asList() được sử dụng để chuyển đổi mảng thành một Array list. Để tìm hiểu thêm về các cách khác nhau để khởi tạo ArrayList, hãy xem thêm trên Stack Overflow. TRUY CẬP PHẦN TỬ ARRAYLIST TRONG JAVACách #1: Sử dụng phương thức get() Để truy cập ngẫu nhiên các phần tử của ArrayList, chúng ta sử dụng phương thức get(). Ví dụ:
classMain{ publicstaticvoidmain(String[]args){ ArrayList<String>thuNuoi=newArrayList<>(); //ThêmphầntửvàoArraylist thuNuoi.add("Chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); System.out.println("Thúnuôi:"+thuNuoi); //Gettheelementfromthearraylist Stringthu=thuNuoi.get(0); System.out.print("Truycậpphầntửthứ0:"+thu); }
} Khi chạy chương trình, kết quả nhận được là:
Cách #2: Sử dụng phương thức iterator() Để truy cập tuần tự các phần tử của Array list, chúng ta sử dụng phương thức iterator(). Trước tiên, chúng ta phải import package java.util.Iterator để sử dụng phương thức iterator(). Ví dụ:
importjava.util.Iterator; classMain{ publicstaticvoidmain(String[]args){ ArrayList<String>thuNuoi=newArrayList<>(); //Addelementsinthearraylist thuNuoi.add("Chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); thuNuoi.add("Lợn"); //TạomộtđốitượngcủaIterator Iterator<String>iterate=thuNuoi.iterator(); System.out.print("Thúnuôi:"); //UsemethodsofIteratortoaccesselements while(iterate.hasNext()){ System.out.print(iterate.next()); System.out.print(","); } }
} Khi chạy chương trình, kết quả nhận được là:
Ở đây:
THAY ĐỔI PHẦN TỬ TRONG ARRAYLISTĐể thay đổi các phần tử của Array list, chúng ta có thể sử dụng phương thức set(). Ví dụ:
classMain{ publicstaticvoidmain(String[]args){ ArrayList<String>thuNuoi=newArrayList<>();
//ThêmphầntửvàoArraylist thuNuoi.add("Chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); System.out.println("ArrayList:"+thuNuoi); //Changetheelementofthearraylist thuNuoi.set(2,"Lợn"); System.out.println("ArrayListđãthayđổi:"+thuNuoi); }
} Khi chạy chương trình, kết quả nhận được là:
LOẠI BỎ PHẦN TỬ KHỎI ARRAYLISTCách #1: Sử dụng phương thức remove() Để loại bỏ một phần tử khỏi Array list, chúng ta có thể sử dụng phương thức remove(). Ví dụ:
classMain{ publicstaticvoidmain(String[]args){ ArrayList<String>thuNuoi=newArrayList<>(); //ThêmcácphầntửvàoArraylist thuNuoi.add("chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); System.out.println("ArrayListbanđầu:"+thuNuoi); //Loạibỏphầntửcóindexbằng2 Stringthu=thuNuoi.remove(2); System.out.println("ArrayListlúcsau:"+thuNuoi); System.out.println("Phầntửđãloạibỏ:"+thu); }
} Khi chạy chương trình, kết quả nhận được là:
Cách #2: Sử dụng phương thức removeAll() Để loại bỏ tất cả các phần tử khỏi Array list, chúng ta có thể sử dụng phương thức removeAll(). Ví dụ:
classMain{ publicstaticvoidmain(String[]args){ ArrayList<String>thuNuoi=newArrayList<>(); //ThêmcácphầntửvàoArraylist thuNuoi.add("Chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); System.out.println("ArrayList banđầu:"+thuNuoi); //LoạibỏtấtcảphầntửkhỏiArraylist animals.removeAll(thuNuoi); System.out.println("ArrayList lúcsau:"+thuNuoi); }
} Khi chạy chương trình, kết quả bạn nhận được là:
Cách #3: Sử dụng phương thức clear() Chúng ta cũng có thể sử dụng phương thức clear() để xóa tất cả các phần tử khỏi Array list. Ví dụ:
classMain{ publicstaticvoidmain(String[]args){ ArrayList<String>thuNuoi=newArrayList<>(); //ThêmcácphầntửvàoArraylist thuNuoi.add("Chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); System.out.println("ArrayList banđầu:"+thuNuoi); //LoạibỏtấtcảphầntửkhỏiArraylist animals.clear(); System.out.println("ArrayListlúcsau:"+thuNuoi); }
} Khi chạy chương trình, kết quả nhận được là:
LẶP QUA MỘT ARRAYLIST TRONG JAVACách #1: Sử dụng vòng lặp for Hãy xem ví dụ sau để hiểu cách sử dụng vòng lặp for để truy cập vào phần tử của Array list.
classMain{ publicstaticvoidmain(String[]args){ //Tạomộtarraylist ArrayList<String>thuNuoi=newArrayList<>(); thuNuoi.add("Chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); System.out.println("ArrayList:"+thuNuoi); //Sửdụngvònglặpfor System.out.println("TruycậpphầntửArrayList:"); for(inti=0;i<thuNuoi.size();i++){ System.out.print(thuNuoi.get(i)); System.out.print(","); } }
} Khi chạy chương trình, kết quả nhận được là:
Cách #2: Sử dụng vòng lặp forEach Hãy xem ví dụ bên dưới đây để hiểu cách sử dụng vòng lặp forEach để truy cập các phần tử trong Array list.
classMain{ publicstaticvoidmain(String[]args){ //Tạomộtarraylist ArrayList<String>thuNuoi=newArrayList<>(); thuNuoi.add("Chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); System.out.println("ArrayList:"+thuNuoi); //SửdụngvònglặpforEach System.out.println("TruycậpphầntửArrayList:"); for(Stringthu:thuNuoi){ System.out.print(thu); System.out.print(","); } }
} Khi chạy chương trình, kết quả nhận được là:
Trong cả hai ví dụ trên, chúng ta đã truy cập các phần tử riêng lẻ của một Array list bằng cách sử dụng các vòng lặp đã được học. LẤY ĐỘ DÀI CỦA ARRAYLISTĐể lấy được độ dài của Array list, chúng ta sử dụng phương thức size().
classMain{ publicstaticvoidmain(String[]args){ //Tạomộtarraylist ArrayList<String>thuNuoi=newArrayList<>(); thuNuoi.add("Chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); System.out.println("ArrayList:"+thuNuoi); //LấyđộdàicủaArraylist System.out.println("ĐộdàiArrayList:"+thuNuoi.size()); }
} Khi chạy chương trình, kết quả nhận được là:
SẮP XẾP PHẦN TỬ TRONG ARRYLISTĐể sắp xếp các phần tử của ArrayList, chúng ta sử dụng phương thức sort() của class Collections. Để sử dụng được phương thức sort(), trước tiên chúng ta phải import package java.util.Collections. Theo mặc định, phương thức sort sẽ sắp xếp theo thứ tự bảng chữ cái hoặc số theo thứ tự tăng dần. Ví dụ:
importjava.util.Collections; classMain{ publicstaticvoidmain(String[]args){ //Tạomộtarraylist ArrayList<String>thuNuoi=newArrayList<>(); thuNuoi.add("Chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); thuNuoi.add("Lợn"); System.out.println("ArrayListchưasắpxếp:"+thuNuoi); //SắpxếpArraylist Collections.sort(thuNuoi); System.out.println("ArrayListđãsắpxếp:"+thuNuoi); }
} Khi chạy chương trình, kết quả nhận được là:
CÁCH CHUYỂN ARRAYLIST THÀNH ARRAY TRONG JAVATrong Java, chúng ta có thể chuyển ArrayList thành Array thông thường bằng phương thức toArray(). Ví dụ:
classMain{ publicstaticvoidmain(String[]args){ //Tạomộtarraylist ArrayList<String>thuNuoi=newArrayList<>(); thuNuoi.add("Chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); thuNuoi.add("Lợn"); System.out.println("ArrayListchưasắpxếp:"+thuNuoi); //TạomộtmảngchứaString String[]arr=newString[thuNuoi.size()]; thuNuoi.toArray(arr); System.out.print("Array:"); for(Stringthu:arr){ System.out.print(thu+","); } }
} Khi chạy chương trình, kết quả nhận được là:
Ở trên chúng ta đã biết chuyển ArrayList thành Array. Vậy thì chuyển Array thành ArrayList có được không? Câu trả lời là hoàn toàn có thể. CÁCH CHUYỂN ARRAY THÀNH ARRAYLIST TRONG JAVAChúng ta có thể chuyển Array thành ArrayListbằng cách sử dụng phương thức asList() của class Arrays. Để sử dụng phương thứcasList(), trước tiên chúng ta phải importk package java.util.Arrays. Ví dụ:
importjava.util.Arrays; classMain{ publicstaticvoidmain(String[]args){ //Tạomộtmảngthôngthường String[]arr={"Chó","Mèo","Gà","Lợn"}; System.out.print("Array: "); //Inmảng for(Stringthu:arr){ System.out.print(thu); System.out.print(""); } //TạomộtArrayListtừmộtArray ArrayList<String>thuNuoi=newArrayList<>(Arrays.asList(arr)); System.out.println("\nArrayList:"+thuNuoi); }
} Khi chạy chương trình, kết quả nhận được là:
CÁCH CHUYỂN MỘT ARRAYLIST THÀNH STRING TRONG JAVAĐể chuyển đổi một ArrayList thành String, chúng ta có thể sử dụng phương thức toString(). Ví dụ:
classMain{ publicstaticvoidmain(String[]args){ ArrayList<String>thuNuoi=newArrayList<>(); //ThêmphầntửvàoArrayList thuNuoi.add("Chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); thuNuoi.add("Lợn"); System.out.println("ArrayList:"+thuNuoi); //ChuyểnArrayListthànhString Stringstr=thuNuoi.toString(); System.out.println("String:"+str); }
} Khi chạy chương trình, kết quả nhận được là:
Lưu ý! MỘT SỐ PHƯƠNG THỨC KHÁC CỦA ARRAYLISTNgoài những phương thức chúng ta vừa tìm hiểu ở trên, ArrayList còn bao gồm một số phương thức khác như:
PHẦN 5: VECTOR TRONG JAVATrong phần này, chúng ta sẽ tìm hiểu về classVector trong Java và cách sử dụng nó. Chúng ta cũng sẽ tìm hiểu xem Vector khác với ArrayList như thế nào và tại sao chúng ta nên sử dụng ArrayList thay thế. Class Vector là một triển khai của List interface cho phép chúng ta tạo các mảng có thể thay đổi kích thước tương tự như class ArrayList. 5.1. SO SÁNH VECTOR VỚI ARRAYLISTTrong Java, cả ArrayList và Vector đều triển khai Listinterface và cung cấp các chức năng giống nhau. Tuy nhiên, có một số khác biệt giữa chúng. Class Vector đồng bộ hóa từng hoạt động riêng lẻ. Điều này có nghĩa là bất cứ khi nào chúng ta muốn thực hiện một số thao tác trên các vector, class Vector sẽ tự động áp dụng khóa cho thao tác đó. Đó là bởi vì:
Do đó, việc sử dụng khóa liên tục này cho mỗi thao tác làm cho vector kém hiệu quả hơn. Tuy nhiên, trong ArrayList, các phương thức không được đồng bộ hóa. Thay vào đó, nó sử dụng phương thức Collections.synchronizedList() để đồng bộ hóa toàn bộ danh sách.
Lưu ý! 5.2. CÁCH TẠO VECTOR TRONG JAVAĐây là cách chúng ta có thể tạo các vectơ trong Java.
Trong đó, Type cho biết kiểu của nó có thể chứa, ví dụ:
Vector<Integer>vector=newVector<>(); //TạomộtVectorkiểuString
Vector<String>vector=newVector<>(); 5.3. MỘT SỐ PHƯƠNG THỨC PHỔ BIẾN CỦA VECTORClass Vector cũng cung cấp các triển khai mảng có thể thay đổi kích thước của List interface (tương tự như lớp ArrayList). Một số phương thức Vector là: THÊM PHẦN TỬ VÀO VECTORCó 3 phương thức bạn có thể sử dụng để thêm phần tử vào trong vector.
Hãy xem ví dụ sau đây:
classMain{ publicstaticvoidmain(String[]args){ Vector<String>thuNuoi=newVector<>(); //Sửdụngphươngthứcadd() thuNuoi.add("Chó"); thuNuoi.add("Mèo"); //Sửdụngindex thuNuoi.add(2,"Gà"); System.out.println("Vector:"+thuNuoi); //SửdụngphươngthứcaddAll() Vector<String>dongVat=newVector<>(); dongVat.add("Cáxấu"); dongVat.addAll(thuNuoi); System.out.println("Vectormới:"+dongVat); }
} Khi chạy chương trình, kết quả nhận được là:
TRUY CẬP CÁC PHẦN TỬ CỦA VECTORChúng ta có 2 phương thức có thể sử dụng để truy cập vào phần tử của Vector:
Hãy xem ví dụ sau:
importjava.util.Iterator; classMain{ publicstaticvoidmain(String[]args){ Vector<String>thuNuoi=newVector<>(); thuNuoi.add("Chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); //TruycậpphầntửVectorsửdụngget StringphanTuVector=thuNuoi.get(1); System.out.println("Truycậpphầntử1:"+phanTuVector) //TruycậpphầntửVectorsửdụngiterator() Iterator<String>iterate=thuNuoi.iterator(); System.out.print("Vector:"); while(iterate.hasNext()){ System.out.print(iterate.next()); System.out.print(","); }
}
} Khi chạy chương trình, kết quả nhận được là:
LOẠI BỎ PHẦN TỬ KHỎI VECTORChúng ta có 3 phương thức để loại bỏ phần tử khỏi Vector:
Hãy xem ví dụ sau:
classMain{ publicstaticvoidmain(String[]args){ Vector<String>thuNuoi=newVector<>();
//ThêmphầntửvàoVector thuNuoi.add("Chó"); thuNuoi.add("Mèo"); thuNuoi.add("Gà"); System.out.println("Vector:"+thuNuoi); //Loạibỏphầntửsửdụngindex Stringloai=thuNuoi.remove(1); System.out.println("Loạibỏphầntử:"+loai); System.out.println("Vectormới:"+thuNuoi); //Sửdụngclear() thuNuoi.clear(); System.out.println("Vectorsaukhiclear:"+thuNuoi); }
} Khi chạy chương trình, kết quả nhận được là:
MỘT SỐ PHƯƠNG THỨC KHÁC CỦA VECTORNgoài những phương thức ở trên, Vector còn có một số phương tức khác:
Còn tiếp.... --- HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay! Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội SĐT: 02435574074 - 0383.180086 Email: Website:https://niithanoi.edu.vn Fanpage: https://facebook.com/NIIT.ICT/
#niit #icthanoi #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #python #java #php |