Liên hệ
java

ArrayList và LinkedList trong Java

Với ArrayList số lượng phần tử có thể cắt giảm hay mở rộng là tùy thuộc yêu cầu sử dụng, sử dụng LinkedList khi cần làm việc với lượng phần tử lớn

ArrayList

Mảng cơ bản trong Java là cố định về số phần tử, nghĩa là sau khai báo chúng không thể mở rộng, hay cắt bớt số phần tử. Nếu muốn có thêm chức năng này thì dùng ArrayList trong package java.util

import java.util.ArrayList;
//...
ArrayList colors = new ArrayList();

Bạn cũng có thể khai báo chi ngay ra kiểu các phần tử mảng này lưu trữ

//Khai báo kiểu phần tử String, khởi tạo với 10 phần tử
ArrayList colors = new ArrayList(10);

Nên nhớ ArrayList lưu giữ các phần tử là đối tượng, nên các kiểu nguyên thủy int, double, float ... không dùng được. Thay vào đó hãy dùng các lớp tương ứng như Integer, Double, Float ...

Một số phương thức ArrayList

  • add(Object o) thêm phần tử vào cuối
  • add(int index, Object element) chèn phần tử vào vị trí index
  • remove(int index) xóa phần tử có chỉ số index
  • clear() xóa mọi phần tử
  • contains(Object o) kiểm tra mảng có chứa phần tử
  • get(int index) lấy phần tủ có chỉ số index
  • indexOf(Object o) lấy chỉ số trong mảng của phần tử
  • size() lấy số phần tử
  • toArray() chuyển thành mảng
import java.util.ArrayList;

public class MyClass {
    public static void main(String[ ] args) {
        ArrayList<String> colors = new ArrayList<String>(3);

        colors.add("Red");
        colors.add("Blue");
        colors.add("Green");
        colors.add("Orange");
        colors.remove("Green");
        colors.add("Pink");
        colors.add("Yellow");

        System.out.println(colors.get(1));
        System.out.println(colors.contains("Orange"));
        System.out.println(colors.size());
        System.out.println(colors);
    }
}

/* Output :
      Blue
      true
      5
      [Red,Blue,Orange,Pink,Yellow]  */

LinkedList

LinkedList có cú pháp, khai báo rất giống với ArrayList, bạn dễ dàng đổi từ ArrayList sang LinkedList bằng cách thay kiểu đối tượng.

Điều khác biết giữa LinkedList và ArrayList là cách chúng lưu trữ dữ liệu. ArrayList tốt để lưu trữ và truy cập dữ liệu, nó gần giống với mảng thông thường. LinkedList thì tốt để tương quản lý dữ liệu, như chèn và xóa một lượng lớn phần tử.

import java.util.LinkedList;

public class MyClass
{
    public static void main(String[ ] args)
    {
        LinkedList<String> c = new LinkedList<String>();
        c.add("Red");
        c.add("Blue");
        c.add("Green");
        c.add("Orange");
        c.remove("Green");

        for(String s: c)
        {
            System.out.println(s);
        }

        System .out.println ("*******************************************");

        for(int i=0;i < c.size();i++)
        {
           System.out.println(c.get(i));
         }
     }
}
  • ArrayList khi bạn cần truy cập nhanh dữ liệu
  • LinkedList khi cần làm việc với việc chèn / xóa lượng lớn phần tử

Vui lòng đăng ký ủng hộ kênh