Antara class yang menggunakan interface List ialah ArrayList dan LinkedList. Cara penggunaannya adalah seperti berikut:

package datastructure;

import java.util.ArrayList;
import java.util.List;

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

        List<String> names = new ArrayList<>();
        names.add("Abu");
        names.add("Ali");
        names.add("Atan");

        System.out.println("List yang asal:");

        for (String name : names) {
            System.out.println(name);
        }

        names.remove(1);

        System.out.println("Selepas buang nama di indeks 1:");

        for (String name : names) {
            System.out.println(name);
        }
    }
}

Java 7 dan ke atas membenarkan diamond interface seperti ini:

List<String> names = new ArrayList<>();

Jika anda menggunakan Java 6 atau ke bawah, anda mungkin perlu menulis begini:

List<String> names = new ArrayList<String>();

Contoh di atas menggunakan method add() untuk menambah data ke dalam List, dan method remove() untuk membuang data daripada List. Untuk lihat method lain yang boleh digunakan, sila rujuk Java API.

Cara lain untuk membuat List adalah dengan mengambil data daripada array menggunakan method Arrays.asList():

package datastructure;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ContohList {
    public static void main(String[] args) {
        String[] nameArray = {"Abu", "Ali", "Atan"};

        List<String> names = new ArrayList<>(Arrays.asList(nameArray));

        System.out.println("List yang asal:");

        for (String name : names) {
            System.out.println(name);
        }

        names.remove(1);

        System.out.println("Selepas buang nama di indeks 1:");

        for (String name : names) {
            System.out.println(name);
        }
    }
}

Untuk menggunakan LinkedList, tukar sahaja ArrayList kepada LinkedList, contohnya,

List<String> names = new LinkedList<>();

Inilah kelebihan apabila menggunakan program to interface.

ArrayList vs LinkedList

Kita lihat cara penggunaan kedua-dua class tersebut adalah sama. Yang membezakan ialah apa yang berlaku di dalam class tersebut.

Secara umumnya, class ArrayList adalah lebih baik. Jika program kita banyak melibatkan add atau remove pada awal indeks, barulah digalakkan menggunakan LinkedList. Itupun jika program tersebut tidak banyak mengakses data daripada LinkedList tersebut. Kesimpulannya, jika kita mahu menggunakan LinkedList, kita perlu lihat perbandingan performance program kita menggunakan kedua-duanya terlebih dahulu.

Jika malas fikir banyak, guna sahaja ArrayList.

Tips untuk meningkatkan performance ArrayList adalah dengan menentukan saiznya terlebih dahulu sesuai dengan data. Contohnya gunakan saiz 300 jika anda membuat program untuk check perkataan dari sebuah esei:

List<String> words = new ArrayList<>(300);

Secara default, saiz ArrayList ialah 10.