Chèn phần tử vào ArrayList Java
Lớp ArrayList trong java được sử dụng như một mảng động để lưu trữ các phần tử. Nó kế thừa lớp AbstractList và impliments giao tiếp List. Show Các mảng Java chuẩn là có độ dài cố định. Sau khi các mảng được tạo, chúng không thể tăng hoặc giảm kích cỡ, nghĩa là bạn phải có bao nhiêu phần tử mà một mảng sẽ giữ. ArrayList được tạo với một kích cỡ ban đầu. Khi kích cỡ này bị vượt, collection tự động được tăng. Khi các đối tượng bị gỡ bỏ, ArrayList có thể bị giảm kích cỡ. Những điểm cần ghi nhớ về lớp ArrayList:
Hierarchy của lớp ArrayList trong javaLớp java.util.ArrayList được định nghĩa như sau: public class ArrayListCác phương thức khởi tạo (constructor) của lớp ArrayList
Các phương thức (method) của lớp ArrayList
Ví dụ minh họaVí dụ sử dụng ArrayList với kiểu dữ liệu cơ bản (Wrapper)package com.gpcoder.collection.arraylist; import java.util.ArrayList; import java.util.List; public class ArrayListExample { public static final int NUM_OF_ELEMENT = 5; public static void main(String[] args) { // Create list with no parameter ListKết quả thực thi chương trình trên: Ví dụ sử dụng ArrayList với kiểu do người dùng tự định nghĩa (Object)package com.gpcoder.collection.arraylist; import java.util.ArrayList; import java.util.List; class Student { private int id; private String name; public Student(int id, String name) { this.id = id; this.name = name; } @Override public String toString() { return "Student [id=" + id + ", name=" + name + "]"; } } public class ArrayListExample { public static final int NUM_OF_ELEMENT = 5; public static void main(String[] args) { // Create list with compacity = 3 ListKết quả thực thi chương trình trên: Student [id=1, name=myname1] Student [id=2, name=myname2] Student [id=3, name=myname3] Student [id=4, name=myname4] Student [id=5, name=myname5] [fbcomments]
ArrayList là một lớp thi hành interface List và hỗ trợ tất cả các tính năng của List bao gồm cả các tính năng tuỳ chọn. Về cơ bản ArrayList quản lý một mảng để lưu trữ các phần tử của nó, mảng này có thể được thay thế bởi một mảng khác có độ dài lớn hơn nếu số phần tử của ArrayList tăng lên.
public class ArrayList
Dưới đây là các đặc điểm của ArrayList:
ArrayList khá giống với Vector, ngoại trừ nó là không đồng bộ. Trong môi trường Multithreading nó nên được gói (wrapped) bằng cách sử dụng phương thức Collections.synchronizedList.
ArrayList CopyOnWriteArrayList là một biến thể an toàn theo luồng (thread-safe) của ArrayList mà bạn có thể cân nhắc sử dụng:
ArrayList quản lý một mảng các đối tượng, tất cả các hành động thêm, chèn hoặc loại bỏ một phần tử ra khỏi ArrayList sẽ tạo ra hành động gán (hoặc cập nhập) giá trị cho các phần tử khác của mảng, nó có thể ảnh hưởng tới nhiều phần tử của mảng. Khi bạn thêm một phần tử vào ArrayList, nó sẽ được gán vào một phần tử của mảng tại chỉ số arrayList.size().
Khi bạn trèn một phần tử vào ArrayList, nhiều phần tử trên mảng sẽ phải cập nhập lại giá trị.
Loại bỏ một phần tử tại chỉ số idx ra khỏi ArrayList cũng làm cho nhiều phần tử của mảng phải cập nhập lại giá trị mới.
ArrayList sẽ thay thế mảng mà nó quản lý bằng một mảng mới có độ dài lớn hơn nếu số lượng phần tử được thêm vào lớn hơn độ dài của mảng hiện tại. Ví dụ, sử dụng ArrayList trong môi trường Multithreading:
package org.o7planning.arraylist.ex;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ArrayList_sync {
public static void main(String[] args) throws InterruptedException {
new ArrayList_sync();
}
public ArrayList_sync() throws InterruptedException {
ArrayList ... A 938 B 898 A 939 B 899 A 940 B 900 A 941 B 901 A 942 ... ArrayList hỗ trợ tất cả các tính năng được đặc tả trong interface List bao gồm cả các tính năng tuỳ chọn. Bạn có thể tìm thấy các ví dụ tốt nhất về ArrayList trong bài viết dưới đây: |