So sánh phần tử trong ArrayList

ArrayList trong Java là cấu trúc dữ liệu được sử dụng phổ biến nhất để tạo một mảng kích thước động. Nó mở rộng lớp Abstract và triển khai Danh sách Java giao diện. Sự khác biệt chính giữa mảng và ArrayList là mảng là tĩnh [chúng ta không thể thêm hoặc bớt các phần tử] trong khi ArrayList là động [chúng ta có thể thêm, bớt hoặc sửa đổi các phần tử]. Trong bài này, chúng ta sẽ xem ArrayList là gì và cách khởi tạo ArrayList trong Java như thế nào?

Bạn cũng có thể quan tâm ArrayList so với LinkedList

Java ArrayList Hierarchy

Khai báo một lớp ArrayList trong Java

Để sử dụng ArrayList trong Java, chúng ta phải nhập java.util.ArrayList. Dưới đây là phần khai báo của ArrayList

lớp công khai ArrayList mở rộng danh sách AbstractList danh sách triển khai , RandomAccess, Cloneable, Serializable

trong đó E biểu thị phần tử hoặc kiểu đối tượng [Ví dụ: Số nguyên, Chuỗi, v.v.]

Lớp ArrayList mở rộng lớp AbstractList và triển khai giao diện Danh sách.

ArrayList Constructors

Chúng ta có thể tạo ArrayList trong Trình tạo Java trong 3 phương pháp dưới đây:

xây dựngMô tả
Lập danh sách[]Điều này tạo ra một danh sách mảng trống
ArrayList [Bộ sưu tập c]Điều này tạo ra một danh sách mảng với các phần tử của bộ sưu tập
ArrayList [kích thước int]Điều này tạo ra một danh sách mảng có kích thước cụ thể

Các tính năng của Java ArrayList

  • Nó là một mảng động có thể thay đổi kích thước, nơi chúng ta có thể thêm, sửa đổi hoặc loại bỏ các yếu tố bất kỳ lúc nào từ danh sách
  • Duy trì một thứ tự tuần tự.
  • Nó rất dễ dàng để truy cập bất kỳ dữ liệu nào từ danh sách dựa trên chỉ mục.
  • Cho phép bản sao các yếu tố trong danh sách

Các phương thức Java ArrayList

Ngoài các phương thức dưới đây, ArrayList trong Java có truy cập cho tất cả các phương thức của giao diện Danh sách.

Phương phápMô tảTham số
Boolean thêm [Đối tượng e]Thêm phần tử được chỉ định vào cuối danh sách.e - phần tử được thêm vào.
Giá trị trả về - Đúng
void add [int index, Object e]Thêm phần tử vào chỉ mục được chỉ định. Nếu chỉ mục đã chứa một phần tử, nó sẽ được chuyển sang bên phảiindex- chỉ mục mà tại đó phần tử cần được chèn vào
e - phần tử cần được chèn
Boolean addAll [Bộ sưu tập c]Thêm một tập hợp các phần tử được chỉ định vào danh sách.c - tập hợp các phần tử được thêm vào
Giá trị trả về - đúng
Boolean addAll [int index, Collection c]Thêm một tập hợp các phần tử tại chỉ mục được chỉ định. Nếu chỉ mục đã chứa phần tử, sau đó nó sẽ được chuyển sang bên phảiindex - chỉ mục mà tại đó các phần tử cần được thêm vàoc - tập hợp các phần tử được thêm vào

Giá trị trả về - Đúng

void clear []Xóa tất cả các phần tử trong danh sách.
Boolean chứa [Đối tượng o]Kiểm tra xem danh sách có chứa phần tử được chỉ định hay khôngGiá trị trả về - true nếu danh sách chứa phần tử
Boolean chứaAll [Bộ sưu tập c]Kiểm tra xem danh sách có chứa tất cả các phần tử trong bộ sưu tập hay khôngGiá trị trả về - true nếu danh sách chứa tất cả các phần tử
Boolean bằng [Đối tượng o]So sánh nếu danh sách chứa tất cả các phần tử được chỉ định theo thứ tự chính xácGiá trị trả về - true nếu các phần tử đối tượng khớp với danh sách
Đối tượng getIndex [int index]Truy xuất phần tử ở chỉ mục được chỉ địnhindex - chỉ mục mà tại đó phần tử cần được truy xuất
Giá trị trả về - Phần tử ở chỉ mục được chỉ định
int indexOf [Đối tượng o]Tìm nạp chỉ mục của lần xuất hiện đầu tiên của phần tử được chỉ địnho - Yếu tố được xác định
Giá trị trả về - giá trị chỉ mục
Boolean isEmpty []Kiểm tra xem danh sách có trống hay khôngGiá trị trả về - đúng nếu danh sách không chứa giá trị
Trình lặp lặp lại lặp lại []Truy xuất trình lặp của danh sách theo trình tựGiá trị trả về - Trình lặp lại
int lastIndexOf [Đối tượng o]Truy xuất lần xuất hiện cuối cùng của đối tượng được chỉ địnho - Yếu tố cần xác định
Giá trị trả về - giá trị chỉ mục
Loại bỏ đối tượng [int index]Loại bỏ phần tử tại chỉ mục được chỉ địnhindex - vị trí chỉ mục mà tại đó phần tử phải được xóa
Giá trị trả về - Phần tử bị xóa
Boolean remove [Đối tượng o]Loại bỏ sự xuất hiện đầu tiên của đối tượng được chỉ định khỏi danh sách nếu cóo - Phần tử cần được loại bỏ
Giá trị trả về - true nếu danh sách chứa phần tử
Boolean removeAll [Bộ sưu tập c]Loại bỏ sự xuất hiện đầu tiên của tất cả các phần tử trong bộ sưu tập khỏi danh sách nếu cóc - tập hợp các phần tử
Giá trị trả về - true nếu danh sách chứa bộ sưu tập
Boolean keepAll [Bộ sưu tập c]Giữ lại tất cả các phần tử được chỉ định trong bộ sưu tập trong danh sách. Các phần tử khác sẽ bị xóac - tập hợp các phần tử phải được giữ lại
Giá trị trả về - true nếu danh sách thay đổi do phương thức được gọi
Tập đối tượng [int index, Object o]Thay thế phần tử tại chỉ mục được chỉ định bằng đối tượng được truyềno - phần tử được thay thếindex - chỉ mục của phần tử

Giá trị trả về - Trả về phần tử trước đó ở chỉ mục được chỉ định

int size []Tìm nạp kích thước của danh sáchGiá trị trả về - kích thước của danh sách
Liệt kê danh sách con [int fromIndex, int toIndex]Truy xuất một phần của danh sách dựa trên start và endIndexfromIndex - vị trí mà từ đó danh sách con phải được truy xuất [bao gồm]
toIndex - chỉ mục cho đến khi danh sách con phải được truy xuất [loại trừ]
void ensureCapacity [int mincapacity]Tăng kích thước của danh sách mảng và đảm bảo nó có thể chứa dung lượng tối thiểu như đã đề cậpmincapacity - số phần tử tối thiểu mà danh sách mảng có thể giữ
void sort [Bộ so sánh c]Sắp xếp các phần tử trong danh sách dựa trên đối số so sánhc - compartor được sử dụng để so sánh các phần tử danh sách
Đối tượng [] toArray []Trả về một mảng các phần tử theo trình tự thích hợpGiá trị trả về - Mảng của tất cả các phần tử trong danh sách theo trình tự thích hợp
Chuỗi toString []Trả về biểu diễn chuỗi của tập hợp các phần tử mảngGiá trị trả về - Chuỗi các phần tử mảng được phân tách bằng dấu phẩy và dấu cách và được đặt trong []
void trimToSize []Cắt kích thước của cá thể ArrayList thành kích thước danh sách hiện tại

Khai báo chung và không chung chung của Java ArrayList

Trước JDK 1.5, Khung Bộ sưu tập Java chung chung như được mô tả dưới đây.

ArrayList al = new ArrayList []; -> Danh sách có thể chứa bất kỳ loại phần tử nào

Sau JDK 1.5, nó hỗ trợ không chung chung có thể được sử dụng như bên dưới. Chúng ta có thể chỉ định loại phần tử trong .

Lập danh sách al = new ArrayList []; -> Danh sách chỉ có thể chứa các giá trị Chuỗi

Lập danh sách al = new ArrayList []; -> Danh sách chỉ có thể chứa giá trị Số nguyên

Java ArrayList Exceptions

ArrayList in Java ném các trường hợp ngoại lệ dưới đây:

  • UnsupportedOperationException - khi hoạt động không được hỗ trợ
  • IndexOutofBoundsException - khi chỉ mục không hợp lệ được chỉ định [fromIndex toIndex hoặc toIndex> size]
  • ClassCastException - khi lớp của phần tử được chỉ định ngăn cản việc thêm nó vào danh sách
  • NullPointerException - khi phần tử được chỉ định là null và danh sách không cho phép thêm phần tử null
  • IllegalArgumentException - khi một số thuộc tính của phần tử ngăn cản việc thêm vào danh sách

Nhập ArrayList trong Java

Trước khi bắt đầu sử dụng lớp ArrayList, chúng ta cần nhập gói có liên quan để sử dụng nó. Đối với điều này, chúng tôi nhập gói bên dưới để sử dụng ArrayList.

import java.util.ArrayList;

Khai báo ArrayList trong Java

Chúng ta có thể khai báo ArrayList trong Java bằng cách tạo biến của kiểu ArrayList. Chúng ta cũng có thể chỉ định kiểu danh sách là Chuỗi hoặc Số nguyên, v.v ... Dưới đây là ví dụ về việc khai báo Danh sách Mảng của kiểu Chuỗi và Số nguyên.

ArrayList colors; ArrayList weight;

Tạo ArrayList trong Java

Khi chúng ta khai báo một ArrayList, chúng ta có thể tạo nó bằng cách gọi phương thức khởi tạo để khởi tạo một đối tượng và gán nó cho biến. Chúng ta có thể sử dụng bất kỳ hàm tạo nào như đã thảo luận ở trên. Chúng ta cũng có thể khai báo và tạo ArrayList trong một câu lệnh như bên dưới.

ArrayList colors = new ArrayList[];

[HOẶC LÀ]

ArrayList colors; //declare an ArrayList colors = new ArrayList[]; //create an ArrayList

Làm thế nào để khởi tạo ArrayList trong Java?

Khi chúng ta khai báo và tạo ArrayList, chúng ta có thể khởi tạo nó với các giá trị cần thiết. Có một số phương pháp để khởi tạo ArrayList như được đề cập bên dưới.

DataOutputStream trong Java

Sử dụng phương thức add []

Một phương pháp phổ biến để khởi tạo ArrayList trong Java là sử dụng phương thức add [].

ArrayList colors = new ArrayList[]; colors.add["Red"]; colors.add["Blue"]; colors.add["Green"];

Sử dụng phương thức asList []

Chúng ta có thể sử dụng phương thức asList [] của lớp Arrays trong khi tạo ArrayList. Đây là một phương thức khác để khởi tạo ArrayList.

ArrayList color = new ArrayList[ Arrays.asList["Red","Blue","Green"] ];

Sử dụng phương thức List.Of []

Phương thức List.of [] là một cách khác để khởi tạo ArrayList.

List colors = new ArrayList[ List.of["Red","Blue","Green"] ];

Sử dụng Bộ sưu tập khác

Chúng ta cũng có thể khởi tạo ArrayList bằng cách sử dụng các giá trị của Bộ sưu tập khác. Trong đoạn mã dưới đây, chúng tôi khởi tạo biến dữ liệu với các giá trị ArrayList màu.

ArrayList colors = new ArrayList[]; colors.add["Red"]; colors.add["Blue"]; colors.add["Green"]; ArrayList data = new ArrayList[colors];

Ví dụ về Java ArrayList

Tạo ArrayList và thêm các phần tử và bộ sưu tập

Đầu tiên, chúng tôi tạo một ArrayList trong Java kiểu Chuỗi và sau đó thêm các phần tử vào danh sách. Sau đó, chúng tôi thêm một phần tử mới tại chỉ mục 1. Do đó, phần tử đã có mặt trước đó ở chỉ mục 1 sẽ di chuyển tuần tự sang bên phải. Chỉ mục trong một mảng luôn bắt đầu từ 0.

Tiếp theo, chúng tôi tạo một danh sách mới với 2 phần tử và thêm toàn bộ tập hợp vào danh sách 1 tại chỉ mục 1.

import java.util.ArrayList; public class ArrayListDemo { public static void main[String[] args] { //Create a String ArrayList ArrayList al = new ArrayList[]; //Add elements al.add["Java"]; al.add["JavaScript"]; al.add["PHP"]; System.out.println["Element in the list1:"]; System.out.println[al]; //Add element at index 1 al.add[1, "C"]; System.out.println["After adding element at index 1: "]; System.out.println[al]; //Create list2 ArrayList list = new ArrayList[]; list.add["C++"]; list.add["Ruby"]; System.out.println["Elements in list2:"]; System.out.println[list]; //Add list2 elements in list1 al.addAll[1, list]; System.out.println["Elements in List 1 after adding list2:"]; System.out.println[al]; } } Output: Element in the list1: [Java, JavaScript, PHP] After adding element at index 1: [Java, C, JavaScript, PHP] Elements in list2: [C++, Ruby] Elements in List 1 after adding list2: [Java, C++, Ruby, C, JavaScript, PHP]

Sửa đổi và xóa một phần tử khỏi ArrayList

Dưới đây là một chương trình ví dụ để sửa đổi mảng liệt kê và xóa một phần tử khỏi ArrayList trong Java.

import java.util.ArrayList; public class ArrayListDemo2 { public static void main[String[] args] { //Create an Integer ArrayList ArrayList numbers = new ArrayList[]; numbers.add[4]; numbers.add[8]; numbers.add[2]; System.out.println["Elements in the list are: "]; System.out.println[numbers]; //Modify element numbers.set[1, 6]; System.out.println["After modifying an element at index 1:"]; System.out.println[numbers]; //Remove an element numbers.remove[2]; System.out.println["After removing an element at index 2:"]; System.out.println[numbers]; } } Output: Elements in the list are: [4, 8, 2] After modifying an element at index 1: [4, 6, 2] After removing an element at index 2: [4, 6]

Các phương pháp hữu ích khác

Ví dụ dưới đây minh họa việc sử dụng các phương thức chứa [], indexOf [] và keepAll [] là một phần của ArrayList.

import java.util.ArrayList; public class ArrayListDemo4 { public static void main[String[] args] { ArrayList letters = new ArrayList[]; letters.add["A"]; letters.add["G"]; letters.add["R"]; System.out.println[letters.contains["U"]]; int i = letters.indexOf["G"]; System.out.println["Index of G is " + i]; ArrayList c = new ArrayList[]; c.add["F"]; c.add["E"]; c.add["T"]; c.add["P"]; letters.addAll[c]; System.out.println["Elements in the list after using addAll:"]; System.out.println[letters]; letters.retainAll[c]; System.out.println["Elements in the list after using retainAll:"]; System.out.println[letters]; } } Output: false Index of G is 1 Elements in the list after using addAll: [A, G, R, F, E, T, P] Elements in the list after using retainAll: [F, E, T, P]

Xóa ArrayList trong java

Ví dụ dưới đây cho thấy rõ ràng kết quả của việc sử dụng các phương thức isEmpty [] và clear [] trong ArrayList. Sử dụng phương thức clear [], chúng ta có thể làm trống ArrayList bằng cách loại bỏ tất cả các phần tử.

import java.util.ArrayList; public class ArrayListDemo5 { public static void main[String[] args] { ArrayList s = new ArrayList[]; s.add["India"]; s.add["US"]; s.add["Germany"]; System.out.println["Contents in list:"]; System.out.println[s]; System.out.println["Result of calling isEmpty[]: " + s.isEmpty[]]; s.clear[]; System.out.println["Contents in list after calling clear[]: " + s]; System.out.println["Result of calling isEmpty[] after clear: " + s.isEmpty[]]; } } Contents in list: [India, US, Germany] Result of calling isEmpty[]: false Contents in list after calling clear[]: [] Result of calling isEmpty[] after clear: true

ensureCapacity []

Phương pháp này đảm bảo rằng Java ArrayList có thể chứa số phần tử tối thiểu. Điều này có thể được sử dụng cho kích thước mảng đang phát triển động.

import java.util.ArrayList; public class ArrayListDemo6 { public static void main[String[] args] { ArrayList al = new ArrayList[]; al.add["Mango"]; al.add["Guava"]; al.add["Apple"]; al.ensureCapacity[3]; System.out.println["Array list can store

tối thiểu

of 3 elements"]; al.add["Orange"]; System.out.println[al]; } } Output: Array list can store minimum of 3 elements [Mango, Guava, Apple, Orange]

In ArrayList trong Java - Lặp lại hoặc điều hướng qua các phần tử

Chúng ta có thể lặp lại thông qua ArrayList trong Java bằng bất kỳ phương pháp nào dưới đây:

  • Vòng lặp for
  • Cho mỗi
  • Giao diện lặp lại
  • Giao diện ListIterator

FileInputStream trong Java

Nhận các phần tử bằng vòng lặp for

Ở đây, chúng tôi sử dụng vòng lặp for để truy xuất các phần tử của mảng và in chúng ở đầu ra.

import java.util.ArrayList; public class ArrayListDemo3 { public static void main[String[] args] { ArrayList list = new ArrayList[]; list.add["Ramesh"]; list.add["Banu"]; list.add["Priya"]; list.add["Karthik"]; int size = list.size[]; System.out.println["Size of list is : " + size]; for[int i=0;i

Chủ Đề