Categories: Thủ Thuật Mới

Review So sánh List và Set trong Java 2022

Mục lục bài viết

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

Cập Nhật: 2021-12-18 11:58:06,Bạn Cần tương hỗ về So sánh List và Set trong Java. Bạn trọn vẹn có thể lại Comments ở phía dưới để Mình đc lý giải rõ ràng hơn.



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

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ẽ tương hỗ cho 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ứng minh và khẳng định là bạn không bỏ sót kiến thức và kỹ năng nào để trọn vẹ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 dài 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ẽ bổ trợ 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ụ nhu yếu một tập hợp những interface và những class để tiến hành 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ụ nhu yếu 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ụ nhu yếu 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 để tiến hành những hoạt động giải trí và sinh hoạt rất khác nhau.

Sơ đồ Java Collections Framework

Chúng ta sẽ tìm hiểu 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ụ nhu yếu những triển khai trực tiếp của Collection interface nhưng phục vụ nhu yếu 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 trọn vẹ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 gọi duy nhất trọn vẹ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ị tương quan đến nó.

1.5. JAVA ITERATOR INTERFACE LÀ GÌ?

Trong Java, Iterator Interface phục vụ nhu yếu những phương thức trọn vẹ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ụ nhu yếu những cấu trúc tài liệu và thuật toán rất khác nhau trọn vẹ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 để tiến hành 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 nữa 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 trọn vẹ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 trọn vẹn có thể sử dụng Map Inteface.
  • Class ArrayListlàm cho cácmảng trọn vẹ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 trọn vẹ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 tiêu dùng dongVat từ class ArrayList.

Bây giờ dongVat là một mảng trọn vẹ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 trọn vẹ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ì.

Ok, hiện giờ 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 tạ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 trải 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 trọn vẹn có thể được sử dụng để tiến hành những hoạt động giải trí và sinh hoạt rất khác nhau trên những đối tượng người tiêu 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 tiêu dùng từ nó.

Để sử dụng những tính năng của List interface, toàn bộ chúng ta trọn vẹ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 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 tiêu dùng list1 và list2 của class ArrayList và LinkedList.

Các đối tượng người tiêu dùng này trọn vẹ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 tiêu dùng iterator trọn vẹ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 nữa 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 tạ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 trọn vẹ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 giải trí và sinh hoạt 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 trọn vẹn có thể thay đổi kích thước.

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 trọn vẹ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ó trọn vẹn có thể thay đổi nó.

Để xử lý yếu tố này, toàn bộ chúng ta trọn vẹ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 trọn vẹn có thể thay đổi kích thước.

Không tựa như mảng thường thì, Array list (đối tượng người tiêu dùng của lớp ArrayList) trọn vẹn có thể tự động hóa trấn áp 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 trọn vẹ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 trọn vẹ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 bảo phủ) tương tứng của kiểu int.

Một wrapper class là một lớp bảo phủ một kiểu tài liệu nguyên thủy.

Ví dụ, class Integer bảo phủ 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 trọn vẹ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ụ nhu yếu những phương thức rất khác nhau được cho phép toàn bộ chúng ta tiến hành 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 trọn vẹ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 tựa 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 trọn vẹ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 cách 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 trọn vẹ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 trọn vẹ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 sơ: [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 trọn vẹ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 sơ: [Chó, Mèo, Gà]
ArrayList lúc sau: []

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

Chúng ta cũng trọn vẹ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 sơ: [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 tạ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 trọn vẹn có thể chuyển ArrayList thành Array thường thì 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à trọn vẹn trọn vẹn có thể.

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

Chúng ta trọn vẹ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 trọn vẹ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 thế nào 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 trọn vẹ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ụ nhu yếu 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 giải trí và sinh hoạt riêng lẻ.

Điều này tức là bất kể lúc nào toàn bộ chúng ta muốn tiến hành 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 vì:

  • 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 nữa.

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 trọn vẹ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ó trọn vẹ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ụ nhu yếu những triển khai mảng trọn vẹ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 cũng trọn vẹ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ụ tại đâ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 trọn vẹ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 tiêu 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 nữa 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 khoản thời hạn 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….

Tóm lược đại ý quan trọng trong bài

  • 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 VECTOR

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, Cg cầu giấy, Tp Hà Nội Thủ Đô

SĐT: 02435574074 – 0383.180086

E-Mail:

Website:niithanoi.edu

Fanpage: facebook/NIIT.ICT/

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

Review Chia Sẻ Link Download So sánh List và Set trong Java ?

– Một số từ khóa tìm kiếm nhiều : ” Review So sánh List và Set trong Java tiên tiến và phát triển nhất , Chia Sẻ Link Down So sánh List và Set trong Java “.

Hỏi đáp vướng mắc về So sánh List và Set trong Java

Quý quý khách trọn vẹn có thể để lại Comments nếu gặp yếu tố chưa hiểu nha.
#sánh #List #và #Set #trong #Java

Phương Bách

Published by
Phương Bách