List Java là gì? Tìm hiểu List trong Java [update 2021] | Ironhack VN

Là một Java beginner, bạn cần học tuần tự từng chủ đề cơ bản nhất để chắc như đinh rằng mình không bị lỗ kiến thức và kỹ năng nào .

Tin chắc rằng những gì mà tôi giới thiệu trong bài viết List Java từ A-Z này sẽ thực sự cần thiết đối với bạn.

Phần 1. Tìm hiểu về Java Collections Framework

Java Collections Framework phân phối một tập hợp những interfaces ( giao diện ) và class ( lớp ) để tiến hành những cấu trúc tài liệu và thuật toán khác nhau .

Java Collection framework cung cấp nhiều interfaces (Set, List, Queue, Deque) và nhiều lớp (ArrayList, Vector, LinkedList, PriorityQueue, HashSet, LinkedHashSet, TreeSet).

Ví dụ, class LinkedList của Collections Framework cung ứng một tập hợp những interfaces để tiến hành cấu trúc tài liệu list được link kép .

Collection trong Java là gì?

Collection trong Java là một framework phân phối kiến trúc để tàng trữ và thao tác một nhóm những đối tượng người tiêu dùng nhất định .
Java Collection hoàn toàn có thể triển khai được toàn bộ những hoạt động giải trí mà bạn hoàn toàn có thể triển khai trên tài liệu, ví dụ điển hình như tìm kiếm, sắp xếp, chèn, thao tác và xóa .
Java Collection đại diện thay mặt một đơn vị chức năng đối tượng người tiêu dùng riêng không liên quan gì đến nhau, ví dụ điển hình như nhóm

Framework trong Java là gì?

Framework trong Java có những đặc tính dưới đây :

  • Cung cấp kiến trúc được làm sẵn
  • Đại diện cho một tập hợp các class và interface.
  • Mang tính tùy chọn

Collection framework là gì?

Collection framework đại diện thay mặt cho một kiến trúc thống nhất để tàng trữ và thao tác một nhóm đối tượng người tiêu dùng. Nó có :

  1. Interface và các cách triển khai của nó, chính xác là các lớp (class)
  2. Thuật toán

Collections Framework với Collection Interface

Không ít người thường bị nhầm lẫn giữa Collections Framework và Collection Interface .
Collection Interface là interface gốc của collections framework .
Framework gồm có nhiều interface như : Map và Iterator. Các interface này cũng hoàn toàn có thể có những Subinterface ( interface con ) .

Interfaces của Collections FrameWork

Java collections framework cung ứng nhiều interface khác nhau .
Các interface này gồm có nhiều method để triển khai nhiều hoạt động giải trí khác nhau trên những collection .
list trong javaTôi sẽ ra mắt cụ thể về những interface, những Subinterface của chúng và cách tiến hành trong những class khác nhau trong những chương tiếp theo .
Còn trong chương này, hãy cùng tìm hiểu và khám phá sơ lược về những interface được sử dụng phổ cập nhất .

Subinterfaces của Collection Interface

Collection Interface gồm có những Subinterface được triển khai bởi những class Java .
Tất cả những method của Collection interface cũng hiện hữu trong những subinterface của nó .

Tại sao cần Collections Framework?

Java collections framework phân phối cấu trúc tài liệu và thuật toán phong phú mà bạn hoàn toàn có thể sử dụng trực tiếp .
2 quyền lợi chính mà Collections Framework mang lại như sau :

  • Bạn không cần phải viết lại code để triển khai các cấu trúc dữ liệu và thuật toán này một cách thủ công
  • Các đoạn code làm sẵn sẽ có tính hiệu quả cao hơn bởi collections framework đã được tối ưu hóa cao.

Ngoài ra, collections framework được cho phép bạn sử dụng một cấu trúc tài liệu nhất định cho một loại tài liệu đơn cử .
Dưới đây là một vài ví dụ giúp bạn hiểu rõ hơn :

  • Nếu bạn muốn dữ liệu của mình là duy nhất, thì bạn có thể sử dụng interface Set do collections framework cung cấp.
  • Để lưu trữ dữ liệu theo cặp key/value, bạn có thể sử dụng interface Map.
  • Class ArrayList cung cấp tính năng tạo ra các mảng có thể thay đổi kích thước.

Ví dụ: ArrayList Class của Collections

Trước khi kết thúc phần này, tôi sẽ đưa ra một ví dụ về class ArrayList của collections framework .
Class ArrayList được cho phép bạn tạo ra những mảng hoàn toàn có thể đổi khác kích cỡ .
Lớp này triển khai interface List ( là một subinterface của Collection interface ) .
/ / The Collections framework is defined in the java.util package
import java.util. ArrayList ;

class Main {
public static void main ( String [ ] args ) {

ArrayList animals = new ArrayList<>();

/ / Add elements
animals.add ( “ Dog ” ) ;
animals.add ( “ Cat ” ) ;
animals.add ( “ Horse ” ) ;
System. out.println ( “ ArrayList : ” + animals ) ;
}
}
Đầu ra
ArrayList : [ Dog, Cat, Horse ]

Phần 2. Tìm hiểu về Java Collection Interface

Trong phần này, bạn sẽ được tìm hiểu và khám phá về Java Collection interface và những subinterface của nó .
Collection Interface là interface gốc của Java collections framework .
Không có cách tiến hành trực tiếp nào của interface này. Tuy nhiên, nó được triển khai thông qua những subinterface của nó, ví dụ điển hình như List, Set, và Queue .
Ví dụ, class ArrayList tiến hành interface List – là một subinterface của Collection Interface .
java list

Collection interface là gì?

Collection interface là một nền tảng mà collections framework được kiến thiết xây dựng. Nó khai báo những method cốt lõi mà những collection sẽ có .

Subinterfaces của Collection

Như đã đề cập như trên, Collection interface gồm có những subinterface được tiến hành bởi nhiều class khác nhau trong Java .

  1. List Interface

List Interface là một collection có thứ tự được cho phép bạn thêm và bớt những thành phần giống tựa như như một mảng .

  1. Set Interface

Set Interface được cho phép bạn tàng trữ những thành phần trong những tập hợp khác nhau tương tự như như tập hợp trong toán học. Nó không hề có những thành phần trùng lặp .

  1. Queue Interface

Queue Interface giúp bạn hoàn toàn có thể tàng trữ và truy vấn những thành phần theo thứ tự first in, first out ( nhập trước, xuất trước ) .

Methods của Collection

Collection interface gồm có nhiều method hoàn toàn có thể được sử dụng để triển khai những hoạt động giải trí khác nhau trên những đối tượng người tiêu dùng .
Các method dưới đây có sẵn trong toàn bộ những subinterface :

  • add() – chèn phần tử được chỉ định vào collection
  • size() – trả về kích thước của collection
  • remove() – xóa phần tử được chỉ định ra khỏi collection
  • iterator() – trả về một biến lặp để truy cập các phần tử của collection
  • addAll() – thêm tất cả các phần tử của một collection được chỉ định vào collection đó.
  • removeAll() – xóa tất cả các phần tử của collection được chỉ định ra khỏi collection đó
  • clear() – xóa tất cả các phần tử của collection

Phần 3. Tìm hiểu về Java List Interface

Trong phần này, tôi sẽ lý giải chi tiết cụ thể về List interface trong Java và những method của nó .
Trong Java, List interface là một collection được sắp xếp theo thứ tự được cho phép bạn tàng trữ và truy vấn và những thành phần một cách tuần tự. Nó giúp lan rộng ra Collection interface .

List Interface là gì?

List Interface giúp bạn tàng trữ collection được sắp xếp theo thứ tự. Nó là một subinterface của Collection .
Nó là một collection gồm có nhiều đối tượng người tiêu dùng được sắp xếp theo thứ tự trong đó những giá trị trùng lặp hoàn toàn có thể được tàng trữ .
Bởi vì List bảo toàn thứ tự chèn vào nên nó được cho phép truy vấn theo vị trí chèn vào của thành phần .

Các Class Implement List

Vì List là một interface nên bạn không hề tạo ra những đối tượng người dùng trải qua nó .
Để sử dụng những tính năng của List interface, bạn hoàn toàn có thể sử dụng những class dưới đây :

  • ArrayList
  • LinkedList
  • Vector
  • Stack

list string javaCác class được xác lập trong Collections framework và triển khai List interface .

Hướng dẫn cách sử dụng List trong Java

Bạn cần phải nhập gói java.util.List thì mới có thể sử dụng List trong Java.

/ / ArrayList implementation of List

List list1 = new ArrayList<>();

/ / LinkedList implementation of List

List list2 = new LinkedList<>();

Ở đây, tôi đã tạo ra các đối tượng list1 và list2 của các class ArrayList và LinkedList trong Java. Các đối tượng có thể sử dụng các tính năng của List interface.

Methods của List Java

List Interface gồm có toàn bộ những method của Collection interface. Bởi vì Collection là một siêu interface của List .
Dưới đây là một trong số những method thường được sử dụng của Collection interface sẵn có trong List interface :

  • add() – thêm một phần tử vào list
  • addAll() – thêm tất cả các phần tử của list này vào list khác
  • get() – giúp truy cập ngẫu nhiên các phần tử từ list
  • iterator() – trả về đối tượng lặp có thể được sử dụng để truy cập tuần tự các phần tử của list
  • set() – thay đổi các phần tử của list
  • remove() – xóa một phần tử ra khỏi list
  • removeAll() – xóa tất cả các phần tử ra khỏi list
  • clear() – xóa tất cả các phần tử khỏi list (hiệu quả hơn removeAll())
  • size() – trả về độ dài của list
  • toArray() – chuyển đổi một list thành một mảng
  • contains() – trả về giá trị true (đúng) nếu list chứa phần tử được chỉ định

Ví dụ cách triển khai List Interface

  1. Triển khai class ArrayList

import java.util. List ;
import java.util. ArrayList ;
class Main {
public static void main ( String [ ] args ) {
/ / Creating list using the ArrayList class

List numbers = new ArrayList<>();

/ / Add elements to the list
numbers.add ( 1 ) ;
numbers.add ( 2 ) ;
numbers.add ( 3 ) ;
System. out.println ( “ List : ” + numbers ) ;
/ / Access element from the list
int number = numbers.get ( 2 ) ;
System. out.println ( “ Accessed Element : ” + number ) ;
/ / Remove element from the list
int removedNumber = numbers.remove ( 1 ) ;
System. out.println ( “ Removed Element : ” + removedNumber ) ;
}
}
Đầu ra
List : [ 1, 2, 3 ]Accessed Element : 3
Removed Element : 2

  1. Triển khai class LinkedList

import java.util. List ;
import java.util. LinkedList ;
class Main {
public static void main ( String [ ] args ) {
/ / Creating list using the LinkedList class

List numbers = new LinkedList<>();

/ / Add elements to the list
numbers.add ( 1 ) ;
numbers.add ( 2 ) ;
numbers.add ( 3 ) ;
System. out.println ( “ List : ” + numbers ) ;
/ / Access element from the list
int number = numbers.get ( 2 ) ;
System. out.println ( “ Accessed Element : ” + number ) ;
/ / Using the indexOf ( ) method
int index = numbers. indexOf ( 2 ) ;
System. out.println ( “ Position of 3 is ” + index ) ;
/ / Remove element from the list
int removedNumber = numbers.remove ( 1 ) ;
System. out.println ( “ Removed Element : ” + removedNumber ) ;
}
}
Đầu ra
List : [ 1, 2, 3 ]Accessed Element : 3
Position of 3 is 1
Removed Element : 2

Java List với Set

Cả Java List interface và Set interface đều kế thừa từ Collection interface. Tuy nhiên, giữa chúng vẫn sống sót một số ít điểm độc lạ như sau :

  • List có thể bao gồm các phần tử trùng lặp. Tuy nhiên, các set lại không thể chứa các phần tử trùng lặp.
  • Các phần tử trong list java được lưu trữ theo thứ tự. Thế nhưng, các phần tử trong các set được lưu trữ theo các nhóm giống như các set trong toán học.

Phần 4. Tìm hiểu về Java ArrayList

Trong phần này, tôi sẽ ra mắt về class ArrayList trong Java, những hoạt động giải trí và phương pháp khác nhau của nó trải qua những ví dụ .
ArrayList Class của Java collections framework phân phối tính năng hoàn toàn có thể biến hóa kích cỡ của những mảng .
Nó giúp tiến hành List interface .
list và arraylist trong java

Java ArrayList với Array

Trong Java, bạn cần khai báo kích cỡ của mảng trước khi sử dụng nó. Khi size của một mảng đã được khai báo thì rất khó để đổi khác .
Để xử lý yếu tố này, bạn hoàn toàn có thể sử dụng ArrayList class. Bởi vì nó được cho phép tạo ra những mảng hoàn toàn có thể đổi khác size .

Không giống như array, khi đã khai báo arraylist trong java thì nó có thể tự động điều chỉnh dung lượng của nó khi bạn thêm hoặc bớt các phần tử trong mảng. Do đó, arraylists còn được gọi là array động.

Tạo ArrayList

Trước khi sử dụng ArrayList, bạn cần nhập gói java.util. ArrayList. Dưới đây là cách tạo ra arraylists trong Java :

ArrayList arrayList= new ArrayList<>();

Ở đây, Type bộc lộ kiểu của một arraylist. Ví dụ ,
/ / create Integer type arraylist

ArrayList arrayList = new ArrayList<>();

/ / create String type arraylist

ArrayList arrayList = new ArrayList<>();

Trong lập trình trên, tôi đã sử dụng Integer chứ không phải Int. Bởi vì tôi không hề sử dụng những kiểu tài liệu nguyên thủy khi tạo ra arraylist .
Thay vào đó, tôi phải sử dụng những lớp wrapper tương ứng. Ở đây, Integer là lớp wrapper tương ứng của int .
Ví dụ : Tạo ArrayList trong Java
import java.util. ArrayList ;
class Main {
public static void main ( String [ ] args ) {
/ / create ArrayList

ArrayList languages = new ArrayList<>();

/ / Add elements to ArrayList
languages.add ( “ Java ” ) ;
languages.add ( “ Python ” ) ;
languages.add ( “ Swift ” ) ;
System. out.println ( “ ArrayList : ” + languages ) ;
}
}
Đầu ra
ArrayList : [ Java, Python, Swift ]Trong ví dụ này, tôi đã tạo ra một ArrayList có tên là languages
Bên cạnh đó, tôi đã sử dụng method add ( ) để thêm những thành phần vào arraylist .

Lưu ý: Bạn cũng có thể tạo arraylist bằng interface List Java bởi vì ArrayList class triển khai interface List.

List list = new ArrayList<>();

Các bước cơ bản khi triển khai ArrayList

ArrayList class cung ứng nhiều method khác nhau để làm những hoạt động giải trí khác nhau trên arraylists .
Dưới đây là những hoạt động giải trí của arraylist thường được sử dụng :

  • Thêm các phần tử
  • Truy cập vào các phần tử
  • Thay đổi các phần tử
  • Loại bỏ các phần tử
  1. Thêm các phần tử vào ArrayList

Để thêm một thành phần riêng không liên quan gì đến nhau vào arraylist, bạn sử dụng method add ( ) của ArrayList class. Ví dụ :
import java.util. ArrayList ;
class Main {
public static void main ( String [ ] args ) {
/ / create ArrayList

ArrayList languages = new ArrayList<>();

/ / add ( ) method without the index parameter
languages.add ( “ Java ” ) ;
languages.add ( “ C ” ) ;
languages.add ( “ Python ” ) ;
System. out.println ( “ ArrayList : ” + languages ) ;
/ / add ( ) method with the index parameter
languages.add ( 1, “ JavaScript ” ) ;
System. out.println ( “ Updated ArrayList : ” + languages ) ;
}
}
Đầu ra
ArrayList : [ Java, C, Python ]Updated ArrayList : [ Java, JavaScript, C, Python ]Trong ví dụ trên, tôi đã tạo ra một ArrayList có tên là languages. Ở đây, tôi sử dụng method add ( ) để thêm những thành phần vào languages .
Hãy chú ý quan tâm vào câu lệnh này ,
languages.add ( 1, “ JavaScript ” ) ;
Ở đây, tôi đã sử dụng tham số chỉ số. Nó là một tham số tùy chọn giúp chỉ định vị trí của thành phần mới được thêm vào
Bạn cũng hoàn toàn có thể thêm những thành phần của một collection vào arraylist bằng cách sử dụng method addAll ( )

  1. Truy cập vào các phần tử ArrayList

Để truy vấn vào một thành phần từ arraylist, bạn sử dụng method get ( ) của ArrayList class. Ví dụ :
import java.util. ArrayList ;
class Main {
public static void main ( String [ ] args ) {

ArrayList animals = new ArrayList<>();

/ / add elements in the arraylist
animals.add ( “ Cat ” ) ;
animals.add ( “ Dog ” ) ;
animals.add ( “ Cow ” ) ;
System. out.println ( “ ArrayList : ” + animals ) ;
/ / get the element from the arraylist
String str = animals.get ( 1 ) ;
System. out.print ( “ Element at index 1 : ” + str ) ;
}
}
Đầu ra
ArrayList : [ Cat, Dog, Cow ]Element at index 1 : Dog
Trong ví dụ trên, tôi đã sử dụng method get ( ) với tham số 1. Ở đây, method này trả về thành phần ở chỉ số 1 .
Ngoài ra, bạn cũng hoàn toàn có thể truy vấn vào những thành phần của ArrayList bằng cách sử dụng method iterator ( ) .

  1. Thay đổi các phần tử ArrayList

Để đổi khác thành phần của arraylist, bạn sử dụng method set ( ) của lớp ArrayList. Ví dụ ,
import java.util. ArrayList ;
class Main {
public static void main ( String [ ] args ) {

ArrayList languages = new ArrayList<>();

/ / add elements in the array list
languages.add ( “ Java ” ) ;
languages.add ( “ Kotlin ” ) ;
languages.add ( “ C + + ” ) ;
System. out.println ( “ ArrayList : ” + languages ) ;
/ / change the element of the array list
languages.set ( 2, “ JavaScript ” ) ;
System. out.println ( “ Modified ArrayList : ” + languages ) ;
}
}
Đầu ra
ArrayList : [ Java, Kotlin, C + + ]Modified ArrayList : [ Java, Kotlin, JavaScript ]Trong ví dụ trên, tôi đã tạo ra một ArrayList có tên là languages. Hãy quan tâm vào dòng
language.set ( 2, “ JavaScript ” ) ;

Ở đây, method set() thay đổi phần tử ở chỉ số 2 thành JavaScript.

  1. Loại bỏ các phần tử Arraylist

Để vô hiệu một thành phần ra khỏi arraylist, bạn hoàn toàn có thể sử dụng method remove ( ) của ArrayList class. Ví dụ ,
import java.util. ArrayList ;
class Main {
public static void main ( String [ ] args ) {

ArrayList animals = new ArrayList<>();

/ / add elements in the array list
animals.add ( “ Dog ” ) ;
animals.add ( “ Cat ” ) ;
animals.add ( “ Horse ” ) ;
System. out.println ( “ ArrayList : ” + animals ) ;
/ / aemove element from index 2
String str = animals.remove ( 2 ) ;
System. out.println ( “ Updated ArrayList : ” + animals ) ;
System. out.println ( “ Removed Element : ” + str ) ;
}
}
Đầu ra
ArrayList : [ Dog, Cat, Horse ]Updated ArrayList : [ Dog, Cat ]Removed Element : Horse

Ở đây, method remove() lấy index number làm tham số. Và xóa phần tử được chỉ định bởi index number.

Bạn cũng hoàn toàn có thể vô hiệu tổng thể những thành phần ra khỏi arraylist cùng một lúc bằng cách sử dụng những method :

  • Java ArrayList removeAll()
  • Java ArrayList clear()

Phần 5. Tìm hiểu về Java Vector

Tiếp theo, tôi sẽ ra mắt khái quát về lớp Vector và cách sử dụng nó, sự độc lạ giữa Vector class và ArrayList class và vì sao nên sử dụng arraylist thay vì sử dụng nó .
Vector class là một cách tiến hành của List interface được cho phép bạn tạo ra những mảng hoàn toàn có thể đổi khác kích cỡ. Nó tựa như như ArrayList class .

Java Vector với ArrayList

Trong Java, cả ArrayList và Vector đều tiến hành List interface và phân phối những tính năng giống nhau .
Tuy nhiên, giữa chúng vẫn có một vài điểm độc lạ
Vector class đồng nhất hóa từng hoạt động giải trí riêng không liên quan gì đến nhau. Điều này có nghĩa là bất kỳ khi nào bạn muốn thực thi một vài hoạt động giải trí trên những Vector thì Vector class sẽ tự động hóa vận dụng khóa cho những hoạt động giải trí đó .
Nguyên nhân là do khi một luồng đang truy vấn vào một vector và cùng lúc đó, một luồng khác cũng nỗ lực truy vấn vào nó, một exception ( ngoại lệ ) có tên gọi ConcurrentModificationException được tạo ra .
Do đó, việc sử dụng liên tục những khóa cho mỗi hoạt động giải trí sẽ làm cho vector kém hiệu suất cao hơn .
Tuy nhiên, trong arraylist, những method lại không được đồng nhất hóa. Thay vào đó, nó sử dụng method Collections. synchronizedList ( ) đồng điệu hóa hàng loạt list
Lưu ý, bạn nên sử dụng ArrayList thay cho Vector vì Vector không bảo đảm an toàn và ít hiệu suất cao hơn .

Tạo Vector

Dưới đây là cách mà bạn hoàn toàn có thể tạo ra Vector trong Java :

Vector vector = new Vector<>();

Ở đây, Type cho biết loại list được link. Ví dụ ,
/ / create Integer type linked list

Vector vector= new Vector<>();

/ / create String type linked list

Vector vector= new Vector<>();

Methods của Vector

Vector class cũng phân phối những cách tiến hành mảng hoàn toàn có thể biến hóa kích cỡ của List interface ( tương tự như như ArrayList class ) .
Hãy cùng khám phá một số ít method phổ cập của Vector trong những phần dưới đây .

Thêm phần tử vào Vectơ

  • add(element) – thêm một phần tử vào vectơ
  • add(index, element) – thêm một phần tử vào vị trí được chỉ định
  • addAll(vector) – thêm tất cả các phần tử của một vectơ vào một vectơ khác

Ví dụ ,
import java.util. Vector ;
class Main {
public static void main ( String [ ] args ) {

Vector mammals= new Vector<>();

/ / Using the add ( ) method
mammals.add ( “ Dog ” ) ;
mammals.add ( “ Horse ” ) ;
/ / Using index number
mammals.add ( 2, “ Cat ” ) ;
System. out.println ( “ Vector : ” + mammals ) ;
/ / Using addAll ( )

Vector animals = new Vector<>();

animals.add ( “ Crocodile ” ) ;
animals. addAll ( mammals ) ;
System. out.println ( “ New Vector : ” + animals ) ;
}
}
Đầu ra
Vector : [ Dog, Horse, Cat ]New Vector : [ Crocodile, Dog, Horse, Cat ]

Truy cập các phần tử Vectơ

  • get(index) – trả về một phần tử được chỉ định bởi chỉ mục
  • iterator() – trả về một đối tượng lặp để truy cập tuần tự các phần tử vectơ

Ví dụ ,
import java.util. Iterator ;
import java.util. Vector ;
class Main {
public static void main ( String [ ] args ) {

Vector animals= new Vector<>();

animals.add ( “ Dog ” ) ;
animals.add ( “ Horse ” ) ;
animals.add ( “ Cat ” ) ;
/ / Using get ( )
String element = animals.get ( 2 ) ;
System. out.println ( “ Element at index 2 : ” + element ) ;
/ / Using iterator ( )

Iterator iterate = animals.iterator();

System. out.print ( “ Vector : “ ) ;
while ( iterate. hasNext ( ) ) {
System. out.print ( iterate.next ( ) ) ;
System. out.print ( “, “ ) ;
}
}
}
Đầu ra
Element at index 2 : Cat
Vector : Dog, Horse, Cat ,

Xóa các phần tử Vectơ

  • remove(index) – xóa một phần tử khỏi vị trí đã được chỉ định
  • removeAll() – loại bỏ tất cả các phần tử
  • clear() – loại bỏ tất cả các phần tử. Method này hiệu quả hơn removeAll()

Ví dụ :
import java.util. Vector ;
class Main {
public static void main ( String [ ] args ) {

Vector animals= new Vector<>();

animals.add ( “ Dog ” ) ;
animals.add ( “ Horse ” ) ;
animals.add ( “ Cat ” ) ;
System. out.println ( “ Initial Vector : ” + animals ) ;
/ / Using remove ( )
String element = animals.remove ( 1 ) ;
System. out.println ( “ Removed Element : ” + element ) ;
System. out.println ( “ New Vector : ” + animals ) ;
/ / Using clear ( )
animals.clear ( ) ;
System. out.println ( “ Vector after clear ( ) : ” + animals ) ;
}
}
Đầu ra
Initial Vector : [ Dog, Horse, Cat ]Removed Element : Horse
New Vector : [ Dog, Cat ]Vector after clear ( ) : [ ]

Các phương pháp vectơ khác

Method Mô tả chức năng
set() thay đổi một phần tử của vectơ
size() trả về kích thước của vectơ
toArray() chuyển đổi vectơ thành một mảng
toString() chuyển đổi vectơ thành chuỗi
contains() tìm kiếm vectơ cho phần tử đã được chỉ định và trả về kết quả Boolean

Phần 6. Tìm hiểu về Java Stack

Trong phần này, bạn sẽ được tìm hiểu và khám phá về Java Stack class và những method của nó trải qua những ví dụ minh họa .
Java collections framework có một class có tên là Stack. Class này cung ứng công dụng của cấu trúc tài liệu ngăn xếp .
Stack class giúp lan rộng ra Vector class .
linkedlist trong java

Stack Implementation

Trong ngăn xếp ( stack ), những thành phần được tàng trữ và truy vấn theo phương pháp Last In, First Out ( nhập sau, xuất trước ) .
Điều này có nghĩa là những thành phần được thêm vào đầu ngăn xếp cũng như bị xóa ra khỏi đầu ngăn xếp .
collections trong java

Tạo Stack

Để tạo một stack, thứ nhất, bạn phải nhập gói java.util. Stack. Sau khi nhập xong, bạn hoàn toàn có thể tạo ra stack trong Java bằng cách như sau :

Stack stacks = new Stack<>();

Ở đây, Type biểu lộ loại của stack. Ví dụ ,
/ / Create Integer type stack

Stack stacks = new Stack<>();

/ / Create String type stack

Stack stacks = new Stack<>();

Stack Methods

Vì Stack giúp lan rộng ra Vector class nên nó thừa kế tổng thể những method của Vector .
Bên cạnh những method đó, Stack class còn có thêm 5 method độc lạ với Vector class .
Method push ( )
Để thêm một thành phần vào đầu stack, bạn hoàn toàn có thể sử dụng method push ( ). Ví dụ :
import java.util. Stack ;
class Main {
public static void main ( String [ ] args ) {

Stack animals= new Stack<>();

/ / Add elements to Stack
animals.push ( “ Dog ” ) ;
animals.push ( “ Horse ” ) ;
animals.push ( “ Cat ” ) ;
System. out.println ( “ Stack : ” + animals ) ;
}
}
Đầu ra
Stack : [ Dog, Hors
Method pop ( )
Để xóa một thành phần ra khỏi đầu stack, bạn hoàn toàn có thể sử dụng method pop ( ). Ví dụ :
import java.util. Stack ;
class Main {
public static void main ( String [ ] args ) {

Stack animals= new Stack<>();

/ / Add elements to Stack
animals.push ( “ Dog ” ) ;
animals.push ( “ Horse ” ) ;
animals.push ( “ Cat ” ) ;
System. out.println ( “ Initial Stack : ” + animals ) ;
/ / Remove element stacks
String element = animals.pop ( ) ;
System. out.println ( “ Removed Element : ” + element ) ;
}
}
Đầu ra
Initial Stack : [ Dog, Horse, Cat ]Removed Element : Cat
Method peek ( )
Method peek ( ) sẽ trả về một đối tượng người tiêu dùng nằm trên cùng của stack. Ví dụ :
import java.util. Stack ;
class Main {
public static void main ( String [ ] args ) {

Stack animals= new Stack<>();

/ / Add elements to Stack
animals.push ( “ Dog ” ) ;
animals.push ( “ Horse ” ) ;
animals.push ( “ Cat ” ) ;
System. out.println ( “ Stack : ” + animals ) ;
/ / Access element from the top
String element = animals.peek ( ) ;
System. out.println ( “ Element at top : ” + element ) ;
}
}
Đầu ra
Stack : [ Dog, Horse, Cat ]Element at top : Cat
Method search ( )
Để tìm kiếm một thành phần trong stack, bạn hoàn toàn có thể sử dụng method search ( ). Nó sẽ trả về vị trí của thành phần nằm trên cùng của stack. Ví dụ :
import java.util. Stack ;
class Main {
public static void main ( String [ ] args ) {

Stack animals= new Stack<>();

/ / Add elements to Stack
animals.push ( “ Dog ” ) ;
animals.push ( “ Horse ” ) ;
animals.push ( “ Cat ” ) ;
System. out.println ( “ Stack : ” + animals ) ;
/ / Search an element
int position = animals.search ( “ Horse ” ) ;
System. out.println ( “ Position of Horse : ” + position ) ;
}
}
Đầu ra
Stack : [ Dog, Horse, Cat ]Position of Horse : 2
Method empty ( )
Để kiểm tra xem một stack có rỗng hay không, bạn cần sử dụng method empty ( ). Ví dụ :
import java.util. Stack ;
class Main {
public static void main ( String [ ] args ) {

Stack animals= new Stack<>();

/ / Add elements to Stack
animals.push ( “ Dog ” ) ;
animals.push ( “ Horse ” ) ;
animals.push ( “ Cat ” ) ;
System. out.println ( “ Stack : ” + animals ) ;
/ / Check if stack is empty
boolean result = animals.empty ( ) ;
System. out.println ( “ Is the stack empty ? ” + result ) ;
}
}
Đầu ra
Stack : [ Dog, Horse, Cat ]Is the stack empty ? false

Sử dụng ArrayDeque thay vì Stack

Stack class cung cấp cách triển khai trực tiếp cấu trúc dữ liệu ngăn xếp. Tuy nhiên, các chuyên gia khuyến cáo không nên sử dụng nó.

Thay vào đó, hãy sử dụng lớp ArrayDeque ( tiến hành Deque interface ) để tiến hành cấu trúc tài liệu ngăn xếp trong Java .

Hy vọng qua những chia sẻ về List Java trên đây, bạn đã nắm được 6 chủ đề chính: Java Collections Framework, Java Collection Interface, Java List Interface, Java ArrayList, Java Vector và Java Stack.

Nếu bạn vẫn chưa hiểu rõ về những chủ đề trên và có mong muốn học hỏi, còn chần chờ gì mà không tham gia khóa học Java online của Ironhack Việt Nam!