Chào mừng bạn đến blog Ynghialagi.com Trang Chủ

Table of Content

Bài đăng

So sánh List và Set trong Java 2022

Thủ Thuật về So sánh List và Set trong Java 2022


Quý khách đang tìm kiếm từ khóa So sánh List và Set trong Java được Update vào lúc : 2022-12-18 11:25:06 . Với phương châm chia sẻ Bí kíp Hướng dẫn trong nội dung bài viết một cách Chi Tiết Mới Nhất. Nếu sau khi đọc nội dung bài viết vẫn ko hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Tác giả lý giải và hướng dẫn lại nha.

Trong nội dung bài viết này mình sẽ hướng dẫn bạn khởi đầu tìm hiểu về Collection trong Java, thứ nhất là tìm hiểu về List trong Java.


Tìm hiểu về List trong Java


Tìm hiểu về List trong Java


Nếu bạn mới khởi đầ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ẽ hỗ trợ bạn học khá đầy đủ kiến thức và kỹ năng trước lúc khởi đầu bài học kinh nghiệm tay nghề này.



Bài học này gồm có 6 chủ đề chính:




    Java Collections Framework

    Java Collection Interface


    Java List Interface


    Java ArrayList


    Java Vector


    Java Stack

Chúng ta sẽ theo từng bước để chắc như đinh là bạn không bỏ sót kiến thức và kỹ năng nào để hoàn toàn có thể tiếp tục hiểu những kiến thức và kỹ năng sẽ tiến hành trình làng / lý giải trong nội dung bài viết List trong Java này.



Từng phần, từng phần sẽ tương hỗ update lẫn nhau để đảm bảo bạn làm rõ. Vì thế đừng vội vàng quá.



Nào, hãy khởi đầu với phần thứ nhất.




PHẦN 1: JAVA COLLECTIONS FRAMEWORK LÀ GÌ?


Nền tảng Java (Java platform) có gồm có một collections framework. Frameowork này phục vụ một tập hợp những interface và những class để thực thi những cấu trúc tài liệu và thuật toán rất khác nhau.



Ví dụ, class LinkedList của collections frameowrk phục vụ việc triển khai cấu trúc tài liệudoubly-linked list.




1.1. INTERFACE CỦA COLLECTONS FRAMEWORK


Java Collections Framework phục vụ những interface rất khác nhau.



Các interface này gồm có một số trong những phương thức để thực thi những hoạt động và sinh hoạt giải trí sinh hoạt rất khác nhau.



Sơ đồ Java Collections Framework


Sơ đồ Java Collections Framework


Chúng ta sẽ tìm làm rõ ràng về những interface này, những subinteface của chúng và triển khai trong những class rất khác nhau trong những phần tiếp theo.



Bây giờ, toàn bộ chúng ta hãy tìm hiểu ngắn gọn về những 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 khối mạng lưới hệ thống phân cấp collections framework.



Java không phục vụ những triển khai trực tiếp của Collection interface nhưng phục vụ những triển khai của những subinterface của nó như List, SetQueue.



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 gồm có những Interface khác ví như: MapIterator.



Các interface này cũng hoàn toàn có thể có subinterface.




1.3. SUBINTERFACES CỦA COLLECTION INTERFACE LÀ GÌ?


Như đã đề cập trước đó, Collection Interface gồm có những subinterface được triển khai bởi những Java class.



Tất cả những phương thức của Collection Interface cũng xuất hiện trong những subinterface của nó.



Dưới đấy là những subinterface của Collection Interface:



LIST INTEFACE TRONG JAVA


List interfacetrong Java là một tập hợp theo thứ tự được cho phép toàn bộ chúng ta thêm và xóa những thành phần như một mảng.



SET INTERFACE TRONG JAVA


Set Interfacetrong Java được cho phép toàn bộ chúng ta tàng trữ những thành phần trong những tập hợp rất khác nhau tương tự như tập hợp trong toán học.



Set không thể có những thành phần trùng lặp.



QUEUE INTERFACE TRONG JAVA


Queue Interface trong Java được sử dụng khi toàn bộ chúng ta muốn tàng trữ và truy vấn những thành phần Theo phong 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 được cho phép những thành phần được tàng trữ trong những cặp key / value.



Key là tên thường gọi duy nhất hoàn toàn có thể được sử dụng để truy vấn một thành phần rõ ràng 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 phục vụ những phương thức hoàn toàn có thể được sử dụng để truy vấn những thành phần của những tập hợp.




1.6. TẠI SAO CHÚNG TA LẠI SỬ DỤNG COLLECTIONS FRAMEOWKR TRONG JAVA?


Java Collections Framework phục vụ những cấu trúc tài liệu và thuật toán rất khác nhau hoàn toàn có thể được sử dụng trực tiếp. Điều này còn có hai ưu điểm chính:




    Chúng ta không phải viết code để thực thi những cấu trúc tài liệu và thuật toán Theo phong cách thủ công.

    Code của toàn bộ chúng ta sẽ hiệu suất cao hơn nhiều vì Collections Framework được tối ưu hóa cao.

Hơn nữa, Collections Framework được cho phép toàn bộ chúng ta sử dụng cấu trúc tài liệu rõ ràng cho một loại tài liệu rõ ràng để tối ưu hóa. Đây là vài ví dụ:




    Nếu toàn bộ chúng ta muốn tài liệu của tớ là duy nhất, thì toàn bộ chúng ta hoàn toàn có thể sử dụng Set Interface.

    Để tàng trữ tài liệu theo cặp key / value, toàn bộ chúng ta hoàn toàn có thể sử dụng Map Inteface.

    Class ArrayListlàm cho cácmảng hoàn toàn có thể thay đổi kích thước.


1.7. VÍ DỤ VỀ SỬ DỤNG ArrayLisst CỦA COLLECTIONS


Trước khi toàn bộ 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 được cho phép toàn bộ chúng ta tạo những mảng hoàn toàn có thể thay đổi kích thước. Class này là khai triển Interface List (là subinteface của Collections interface).


//Collectionsframeworkđượcđịnhnghĩabêntrongjava.utilpackage


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:


ArrayList: [Chó, Mèo, Gà]


Như bạn thấy, toàn bộ chúng ta tạo đối tượng người dùng dongVat từ class ArrayList.



Bây giờ dongVat là một mảng hoàn toàn có thể chứa những thành phần là String.



Tuy nhiên, hãy nhìn kỹ, toàn bộ chúng ta không khai báo số lượng thành phần màdongVat hoàn toàn có thể chứa.



Nhưng khi toàn bộ chúng ta thêm thành phần vào mà không hề bị lỗi như mảng Java thông thường.



Ok, giờ đây bạn đã hiểu sơ lược về Java Collections Framework và tại sao toàn bộ 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, toàn bộ chúng ta sẽ tìm hiểu thêm một chút ít về Java Collections Interface và những 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

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 những 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 COLLECTION


Như đã đề cập ở trên, Collection Interface gồm có những subinterface được triển khai bởi những class rất khác nhau trong Java.



LIST INTEFACE


List interface là một tập hợp có thứ tự được cho phép toàn bộ chúng ta thêm và xóa những thành phần như một mảng.



SET INRERFACE

Set interface được cho phép toàn bộ chúng ta tàng trữ những thành phần trong những tập hợp rất khác nhau tương tự như tập hợp trong toán học.



Set không thể có những thành phần trùng lặp.


QUEUE INTERFACE


Queue interface được sử dụng khi toàn bộ chúng ta muốn tàng trữ và truy vấn những thành phần Theo phong cách Nhập trước, Xuất trước.




2.2. CÁC PHƯƠNG THỨC CỦA COLLECTION


Collection Interface có chứa nhiều phương thức rất khác nhau hoàn toàn có thể được sử dụng để thực thi những hoạt động và sinh hoạt giải trí sinh hoạt rất khác nhau trên những đối tượng người dùng.



Các phương thức này còn có sẵn trong toàn bộ những subinterface của nó.




    add() – chèn thành phần đã chỉ định vào tập hợp

    size() – trả về kích thước của tập hợp


    remove() – xóa thành phần đã chỉ định khỏi tập hợp


    iterator() – trả về một iterator để truy vấn những thành phần của tập hợp


    addAll() – thêm toàn bộ những phần tửcủa tập hợpđã chỉ định vào tập hợp


    removeAll() – xóa toàn bộ những phần tửcủa tập hợpđã chỉ định khỏi tập hợp


    clear() – xóa toàn bộ những thành phần của tập hợp.

Tiếp theo, toàn bộ chúng ta sẽ khởi đầu đi vào chủ để chính trong nội dung bài viết này.




PHẦN 3: LIST TRONG JAVA


Trong phần này, toàn bộ chúng ta sẽ tìm hiểu về List interface trong Java và những phương thức của nó.



Trong Java, List interface là một tập hợp được sắp xếp được cho phép toàn bộ chúng ta tàng trữ và truy vấn những thành phần theo tuần tự.



List interface mở rộng (thừa kế) Collection interface.




3.1. CÁC CLASS TRIỂN KHAI LIST TRONG JAVA


List là một interface, nên toàn bộ chúng ta không thể tạo những đối tượng người dùng từ nó.



Để sử dụng những tính năng của List interface, toàn bộ chúng ta hoàn toàn có thể sử dụng những class sau:




    ArrayList

    LinkedList


    Vector


    Stack


Các class triển khai List interface


Các class triển khai List interface


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, toàn bộ chúng ta phải import package là java.util.List để sử dụng được List.


//ArrayListtriểnkhaiList


List<String>list1=newArrayList<>();


//LinkedListtriểnkhaiList


List<String>list2=newLinkedList<>();


Ở đây, toàn bộ chúng ta đã tạo những đối tượng người dùng list1 và list2 của class ArrayList và LinkedList.



Các đối tượng người dùng này hoàn toàn có thể sử dụng những tính năng của List interface.




3.3. CÁC PHƯƠNG THỨC CỦA LIST


List interface gồm có toàn bộ những 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 luôn có thể có sẵn trong List interface là:




    add() – thêm một thành phần vào list

    addAll() – thêm toàn bộ những phần tửcủa listnày vào listkhác


    get() – giúp truy vấn ngẫu nhiên những phần tửtừ list


    tterator() – trả về đối tượng người dùng iterator hoàn toàn có thể được sử dụng để truy vấn tuần tự những thành phần của list


    set() – thay đổi những phần tửcủa list


    remove() – xóa một thành phần khỏi list


    removeAll() – xóa toàn bộ những phần tửkhỏi list


    clear() – xóa toàn bộ những phần tửkhỏi list (hiệu suất cao hơn removeAll())


    size() – trả về độ dài của list


    toArray() – quy đổi một listthành một array


    contains() – trả về true nếu listchứa thành phần được chỉ định


3.4. VÍ DỤ TRIỂN KHAI CỦA LIST INTERFACE TRONG JAVA


Như đã nói ở trên, List interface có những 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 JAVA


Hãy cùng xem ví dụ phía dưới đây để hiểu cách sử dụng ArrayList:


//importpackagecầnthiết


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:


List: [1, 2, 3]

Truy cập thành phần: 3

Loại bỏ thành phần: 2



VÍ DỤ TRIỂN KHAI CLASS LINKEDLIST TRONG JAVA


Chúng ta có ví dụ đơn thuần và giản dị về LinkedList trong Java như sau:


//importpackagecầnthiết


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à:


List: [1, 2, 3]

Truy cập thành phần: 3

Vị trí của thành phần 2 là: 1

Loại bỏ thành phần: 2




3.5. TRONG JAVA LIST KHÁC SET Ở ĐIỂM NÀO?


Cả List interface và Set interface đều thừa kế Collections Framework. Tuy nhiên, có một số trong những khác lạ giữa chúng.


    List hoàn toàn có thể chứa những thành phần trùng lặp. Tuy nhiên, Set là không thể chứa những thành phần trùng lặp.


    Các thành phần trong List được tàng trữ theo thứ tự. Tuy nhiên, những thành phần trong Set được tàng trữ trong những nhóm như tập hợp trong toán học.

Bây giờ toàn bộ chúng ta đã biết List là gì, toàn bộ chúng ta sẽ thấy những triển khai của nó trong những lớp ArrayList và LinkedList một cách rõ ràng trong những phần tiếp theo.




PHẦN 4: ARRAYLIST TRONG JAVA


Trong phần này, toàn bộ chúng ta sẽ tìm hiểu về class ArrayList trong Java. Chúng ta sẽ tìm hiểu về kiểu cách hoạt động và sinh hoạt giải trí và những phương thức ArrayList rất khác nhau với việc trợ giúp của những ví dụ.



ClassArrayList là một triển khai của List interface được cho phép toàn bộ chúng ta tạo những mảng hoàn toàn có thể thay đổi kích thước.


Mối quan hệ giữa ArrayList, List và Collection trong Java


Mối quan hệ giữa ArrayList, List và Collection trong Java



4.1. ARRAYLIST KHÁC ARRAY NHƯ THẾ NÀO?


Trong Java, toàn bộ chúng ta cần khai báo kích thước của một mảng trước lúc hoàn toàn có thể sử dụng nó.



Khi kích thước của một mảng được khai báo, bạn khó hoàn toàn có thể thay đổi nó.



Để xử lý yếu tố này, toàn bộ chúng ta hoàn toàn có thể sử dụng class ArrayList.


Class ArrayList có sẵn trong java.util package được cho phép toàn bộ chúng ta tạo những mảng hoàn toàn có thể thay đổi kích thước.



Không in như mảng thông thường, Array list (đối tượng người dùng của lớp ArrayList) hoàn toàn có thể tự động hóa kiểm soát và điều chỉnh kích thước của nó khi toàn bộ chúng ta thêm hoặc xóa những thành phần 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 toàn bộ chúng ta hoàn toàn có thể tạo Array list trong Java:


ArrayList<Type>arrayList=newArrayList<>();


Ở đây, Type chỉ định kiểu tài liệu mà Array list hoàn toàn có thể chứa.


//TạomộtArrayListchứaInteger


ArrayList<Integer>arrayList=newArrayList<>();


//TạomộtArrayListchứaString


ArrayList<String>arrayList=newArrayList<>();


Trong chương trình trên, toàn bộ 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 tài 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 ý!


Chúng ta không thể tạo ArrayList với những kiểu tài liệu nguyên thủy như int, float, char, v.v. Thay vào đó, toàn bộ chúng ta phải sử dụng wrapper class tương ứng của chúng.


Trong trường hợp của String, String là một class và không wrapper class. Do đó, toàn bộ chúng ta sử dụng chính nó.



Chúng tôi cũng hoàn toàn có thể tạo Array list bằng phương pháp sử dụng List interface. Bởi vì class ArrayList là một triển khai của List interface.


List<String>list=newArrayList<>();




4.3. CÁC PHƯƠNG THỨC CỦA ARRAYLIST TRONG JAVA


ArrayListcó phục vụ những phương thức rất khác nhau được cho phép toàn bộ chúng ta thực thi thao tác với những Array list.



THÊM PHẦN TỬ VÀO MỘT ARRAYLIST TRONG JAVA


Cách #1: Sử dụng phương thức add()


Để thêm một thành phần vào một trong những ArrayList, toàn bộ chúng ta sử dụng phương thức add(). Ví dụ:


importjava.util.ArrayList;


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à:


ArrayList: [Chó, Mèo, Gà]


Cách #2: Sử dụng chỉ số index.


Chúng ta cũng hoàn toàn có thể thêm những thành phần vào một trong những Array list bằng phương pháp sử dụng chỉ số index. Ví dụ:


importjava.util.ArrayList;


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à:


ArrayList: [Chó, Mèo, Gà]


Cách #3: Thêm thành phần của Array list này vào một trong những Array list khác


Để thêm toàn bộ những thành phần của Array list này vào Array list mới, toàn bộ chúng ta sử dụng phương thức addAll(). Ví dụ:


importjava.util.ArrayList;


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:


Thú nuôi: [Chó, Mèo, Gà]

Động vật: [Cá xấu, Chó, Mèo, Gà]



KHỞI TẠO MỘT ARRAYLIST SỬ DỤNG ASLIST()


Không in như mảng, toàn bộ chúng ta không thể khởi tạo trực tiếp Array list.



Tuy nhiên, toàn bộ chúng ta hoàn toàn 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 toàn bộ chúng ta phải import package java.util.Arrays.



Hãy xem ví dụ sau:


importjava.util.ArrayList;


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à:


Thú nuôi: [Chó, Mèo, Gà]

Truy cập thành phần: Mèo


Trong ví dụ trên, hãy để ý biểu thức:


newArrayList<>(Arrays.asList(“Chó”,”Mèo”,”Gà”));


Ở đây, trước tiên toàn bộ chúng ta đã tạo ra một mảng gồm 3 thành phần: “Chó”, “Mèo”, “Gà”.



Sau đó, phương thức asList() được sử dụng để quy đổi mảng thành một Array list.



Để tìm hiểu thêm về những phương pháp rất khác nhau để khởi tạo ArrayList, hãy click more trên Stack Overflow.



TRUY CẬP PHẦN TỬ ARRAYLIST TRONG JAVA


Cách #1: Sử dụng phương thức get()


Để truy vấn ngẫu nhiên những thành phần của ArrayList, toàn bộ chúng ta sử dụng phương thức get().



Ví dụ:


importjava.util.ArrayList;


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à:


Thú nuôi: [Chó, Mèo, Gà]

Truy cập thành phần thứ 0: Chó


Cách #2: Sử dụng phương thức iterator()


Để truy vấn tuần tự những thành phần của Array list, toàn bộ chúng ta sử dụng phương thức iterator().



Trước tiên, toàn bộ chúng ta phải import package java.util.Iterator để sử dụng phương thức iterator().



Ví dụ:


importjava.util.ArrayList;


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à:


Thú nuôi: Chó, Mèo, Gà, Lợn


Ở đây:




    hasNext() trả về true nếu có thành phần tiếp theo trong Array list.

    next() trả về thành phần tiếp theo trongArray list.

THAY ĐỔI PHẦN TỬ TRONG ARRAYLIST


Để thay đổi những thành phần của Array list, toàn bộ chúng ta hoàn toàn có thể sử dụng phương thức set().



Ví dụ:


importjava.util.ArrayList;


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à:


ArrayList: [Chó, Mèo, Gà]

ArrayList đã thay đổi: [Chó, Mèo, Lợn]



LOẠI BỎ PHẦN TỬ KHỎI ARRAYLIST


Cách #1: Sử dụng phương thức remove()


Để vô hiệu một thành phần khỏi Array list, toàn bộ chúng ta hoàn toàn có thể sử dụng phương thức remove().



Ví dụ:


importjava.util.ArrayList;


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à:


ArrayList ban đầu: [Chó, Mèo, Gà]

ArrayList lúc sau: [Chó, Mèo]

Phần tử đã vô hiệu: Gà


Cách #2: Sử dụng phương thức removeAll()


Để vô hiệu toàn bộ những thành phần khỏi Array list, toàn bộ chúng ta hoàn toàn có thể sử dụng phương thức removeAll().



Ví dụ:


importjava.util.ArrayList;


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à:


ArrayList ban đầu: [Chó, Mèo, Gà]

ArrayList lúc sau: []


Cách #3: Sử dụng phương thức clear()


Chúng ta cũng hoàn toàn có thể sử dụng phương thức clear() để xóa toàn bộ những thành phần khỏi Array list.



Ví dụ:


importjava.util.ArrayList;


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à:


ArrayList ban đầu: [Chó, Mèo, Gà]

ArrayList lúc sau: []



LẶP QUA MỘT ARRAYLIST TRONG JAVA


Cá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 vấn vào thành phần của Array list.


importjava.util.ArrayList;


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à:


ArrayList: [Chó, Mèo, Gà]

Truy cập thành phần ArrayList:

Chó, Mèo, Gà,


Cách #2: Sử dụng vòng lặp forEach


Hãy xem ví dụ phía dưới đây để hiểu cách sử dụng vòng lặp forEach để truy vấn những thành phần trong Array list.


importjava.util.ArrayList;


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à:



ArrayList: [Chó, Mèo, Gà]

Truy cập thành phần ArrayList:

Chó, Mèo, Gà,


Trong cả hai ví dụ trên, toàn bộ chúng ta đã truy vấn những thành phần riêng lẻ của một Array list bằng phương pháp sử dụng những vòng lặp đã được học.



LẤY ĐỘ DÀI CỦA ARRAYLIST


Để lấy được độ dài của Array list, toàn bộ chúng ta sử dụng phương thức size().


importjava.util.ArrayList;


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à:


ArrayList: [Chó, Mèo, Gà]

Độ dài ArrayList: 3



SẮP XẾP PHẦN TỬ TRONG ARRYLIST


Để sắp xếp những thành phần của ArrayList, toàn bộ 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 toàn bộ 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 vần âm hoặc số theo thứ tự tăng dần.


Ví dụ:


importjava.util.ArrayList;


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à:



ArrayList chưa sắp xếp: [Chó, Mèo, Lợn, Gà]

ArrayList đã sắp xếp: [Chó, Gà, Lợn, Mèo]



CÁCH CHUYỂN ARRAYLIST THÀNH ARRAY TRONG JAVA

Trong Java, toàn bộ chúng ta hoàn toàn có thể chuyển ArrayList thành Array thông thường bằng phương thức toArray().



Ví dụ:


importjava.util.ArrayList;


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à:



ArrayList: [Chó, Mèo, Gà, Lợn]

Array: Chó, Mèo, Gà, Lợn,


Ở trên toàn bộ 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 vấn đáp là hoàn toàn hoàn toàn có thể.


CÁCH CHUYỂN ARRAY THÀNH ARRAYLIST TRONG JAVA


Chúng ta hoàn toàn có thể chuyển Array thành ArrayListbằng phương pháp sử dụng phương thức asList() của class Arrays.



Để sử dụng phương thứcasList(), trước tiên toàn bộ chúng ta phải importk package java.util.Arrays.



Ví dụ:


importjava.util.ArrayList;


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à:


Array: Chó Mèo Gà Lợn

ArrayList: [Chó, Mèo, Gà, Lợn]



CÁCH CHUYỂN MỘT ARRAYLIST THÀNH STRING TRONG JAVA

Để quy đổi một ArrayList thành String, toàn bộ chúng ta hoàn toàn có thể sử dụng phương thức toString().



Ví dụ:


importjava.util.ArrayList;


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à:


ArrayList: [Chó, Mèo, Gà, Lợn]

String: [Chó, Mèo, Gà, Lợn]



Lưu ý!


Phương thứctoString() quy đổi toàn bộ ArrayList thành một Chuỗi duy nhất.


MỘT SỐ PHƯƠNG THỨC KHÁC CỦA ARRAYLIST


Ngoài những phương thức toàn bộ chúng ta vừa tìm hiểu ở trên, ArrayList còn gồm có một số trong những phương thức khác ví như:


    clone(): Tạo một Arrayistvới cùng thành phần, kích thước và dung tích.
    contain():Tìm kiếm thành phần đã chỉ định trong Array list và trả về kết quả boolean.
    notifyCapacity(): Chỉ định tổng thành phần mà Array listcó thể chứa.
    isEmpty(): Kiểm tra xem Array list đócó trống không.
    indexOf():Tìm kiếm một thành phần được chỉ định trong Array list và trả về index của thành phần.
    trimToSize(): Giảm dung tích của Array list về kích thước hiện tại của nó.


PHẦN 5: VECTOR TRONG JAVA


Trong phần này, toàn bộ chúng ta sẽ tìm hiểu về classVector trong Java và cách sử dụng nó.



Chúng ta cũng tiếp tục tìm hiểu xem Vector khác với ArrayList ra làm sao và tại sao toàn bộ chúng ta nên sử dụng ArrayList thay thế.



Class Vector là một triển khai của List interface được cho phép toàn bộ chúng ta tạo những mảng hoàn toàn có thể thay đổi kích thước tương tự như class ArrayList.




5.1. SO SÁNH VECTOR VỚI ARRAYLIST


Trong Java, cả ArrayListVector đều triển khai Listinterface và phục vụ những hiệu suất cao giống nhau.



Tuy nhiên, có một số trong những khác lạ giữa chúng.



Class Vector đồng điệu hóa từng hoạt động và sinh hoạt giải trí riêng lẻ.



Điều này nghĩa là bất kể lúc nào toàn bộ chúng ta muốn thực thi một số trong những thao tác trên những vector, class Vector sẽ tự động hóa vận dụng khóa cho thao tác đó.



Đó là chính bới:



    Khi một luồng đang truy vấn vào một trong những vector, đồng thời một luồng khác nỗ lực truy vấn vào nó, một ngoại lệ mang tên là ConcurrencyModificationException được tạo ra.

Do đó, việc sử dụng khóa liên tục này cho từng thao tác làm cho vector kém hiệu suất cao hơn.



Tuy nhiên, trong ArrayList, những phương thức không được đồng điệu hóa.



Thay vào đó, nó sử dụng phương thức Collections.synchronizedList() để đồng điệu hóa toàn bộ list.



Lưu ý!


Nên sử dụng ArrayList thay cho Vector vì vectơ không phải là luồng bảo vệ an toàn và uy tín và nó còn kém hiệu suất cao.



5.2. CÁCH TẠO VECTOR TRONG JAVA


Đây là cách toàn bộ chúng ta hoàn toàn có thể tạo những vectơ trong Java.


Vector<Type>vector=newVector<>();


Trong số đó, Type cho biết thêm thêm kiểu của nó hoàn toàn có thể chứa, ví dụ:


//TạomộtVectorkiểuInteger


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 VECTOR


Class Vector cũng phục vụ những triển khai mảng hoàn toàn 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 VECTOR

Có 3 phương thức bạn hoàn toàn có thể sử dụng để thêm thành phần vào trong vector.



    add(element): Thêm một thành phần vào vectơ
    add(index, element): Thêm một thành phần vào vị trí đã chỉ định
    addAll(vector):Thêm toàn bộ những thành phần của một vectorvào một vectorkhác

Hãy xem ví dụ sau này:


importjava.util.Vector;


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à:


Vector: [Chó, Mèo, Gà]

Vector mới: [Cá xấu, Chó, Mèo, Gà]



TRUY CẬP CÁC PHẦN TỬ CỦA VECTOR


Chúng ta có 2 phương thức hoàn toàn có thể sử dụng để truy vấn vào thành phần của Vector:



    get(index): Trả về một thành phần được chỉ định bởi chỉ mục
    iterator(): Trả về một đối tượng người dùng iterator để truy vấn tuần tự những thành phần vector

Hãy xem ví dụ sau:


importjava.util.Vector;


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à:


Truy cập thành phần 1: Mèo

Vector: Chó, Mèo, Gà,



LOẠI BỎ PHẦN TỬ KHỎI VECTOR


Chúng ta có 3 phương thức để vô hiệu thành phần khỏi Vector:



    remove(index):Xóa thành phần ở vị trí đã chỉ định
    removeAll(): Xóa toàn bộ những thành phần
    clear(): Loại bỏ toàn bộ những thành phần.Nó hiệu suất cao hơn removeAll()

Hãy xem ví dụ sau:


importjava.util.Vector;


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à:


Vector: [Chó, Mèo, Gà]

Loại bỏ thành phần: Mèo

Vector mới: [Chó, Gà]

Vector sau khi clear: []



MỘT SỐ PHƯƠNG THỨC KHÁC CỦA VECTOR


Ngoài những phương thức ở trên, Vector còn tồn tại một số trong những phương tức khác:



    set(): Thay đổi một thành phần của vector
    size(): Trả về kích thước của vector
    toArray(): Chuyển đổi vectơ thành một mảng
    toString(): quy đổi vectơ thành Chuỗi
    contain(): Tìm kiếm phần tửđã chỉ định trong vectorvà trả về kết quả boolean

Còn tiếp….





Nội dung chính



    PHẦN 1: JAVA COLLECTIONS FRAMEWORK LÀ GÌ?

    1.1. INTERFACE CỦA COLLECTONS FRAMEWORK

    1.2. TÌM HIỂU CƠ BẢN VỀ JAVA COLLECTIONS INTERFACE?

    1.3. SUBINTERFACES CỦA COLLECTION INTERFACE LÀ GÌ?

    1.4. JAVA MAP INTERFACE LÀ GÌ?

    1.5. JAVA ITERATOR INTERFACE LÀ GÌ?

    1.6. TẠI SAO CHÚNG TA LẠI SỬ DỤNG COLLECTIONS FRAMEOWKR TRONG JAVA?

    1.7. VÍ DỤ VỀ SỬ DỤNG ArrayLisst CỦA COLLECTIONS

    PHẦN 2: JAVA COLLECTION INTERFACE LÀ GÌ?

    2.1. SUBINTERFACE CỦA COLLECTION

    2.2. CÁC PHƯƠNG THỨC CỦA COLLECTION

    PHẦN 3: LIST TRONG JAVA

    3.1. CÁC CLASS TRIỂN KHAI LIST TRONG JAVA

    3.2. LÀM THẾ NÀO ĐỂ SỬ DỤNG LIST TRONG JAVA?

    3.3. CÁC PHƯƠNG THỨC CỦA LIST

    3.4. VÍ DỤ TRIỂN KHAI CỦA LIST INTERFACE TRONG JAVA

    3.5. TRONG JAVA LIST KHÁC SET Ở ĐIỂM NÀO?

    PHẦN 4: ARRAYLIST TRONG JAVA

    4.1. ARRAYLIST KHÁC ARRAY NHƯ THẾ NÀO?

    4.2. CÁCH TẠO RA MỘT ARRAYLIST TRONG JAVA

    4.3. CÁC PHƯƠNG THỨC CỦA ARRAYLIST TRONG JAVA

    PHẦN 5: VECTOR TRONG JAVA

    5.1. SO SÁNH VECTOR VỚI ARRAYLIST

    5.2. CÁCH TẠO VECTOR TRONG JAVA

    5.3. MỘT SỐ PHƯƠNG THỨC PHỔ BIẾN CỦA VECTORVideo liên quan

HỌC VIỆN ĐÀO TẠO CNTT NIIT – ICT HÀ NỘI


Học Lập trình rất chất lượng (Since 2002). Học thực tiễn + Tuyển dụng ngay!


Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Tp Hà Nội Thủ Đô


SĐT: 02435574074 – 0383.180086


E-Mail:


Website:https://niithanoi.edu.vn


Fanpage: https://facebook.com/NIIT.ICT/


#niit #icthanoi #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #python #java #php


Share Link Tải So sánh List và Set trong Java miễn phí


Bạn vừa đọc Post Với Một số hướng dẫn một cách rõ ràng hơn về Video So sánh List và Set trong Java tiên tiến và phát triển nhất Chia Sẻ Link Cập nhật So sánh List và Set trong Java Free.



Thảo Luận vướng mắc về So sánh List và Set trong Java


Nếu sau khi đọc nội dung bài viết So sánh List và Set trong Java vẫn chưa hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Mình lý giải và hướng dẫn lại nha

#sánh #List #và #Set #trong #Java

Đăng nhận xét