Sử dụng List trong học lập trình Java

Giới thiệu nội dung bài viết

Tiếp nối chuỗi các bài viết chia sẻ về kiến thức lập trình Java từ cơ bản tới nâng cao. Hôm nay anh sẽ chia sẻ về cách sử dụng List trong lập trình hướng đối tượng Java. Trước hết phải hiểu được tập hợp List trong lập trình Java là gì? Sau đó tìm hiểu các tập hợp được sử dụng để cài đặt Interface List trong lập trình hướng đối tượng Java gồm ArrayList, LinkedList, Vector, Stack. Và chia sẻ về loại tập hợp được sử dụng nhiều nhất, đó là tập hợp ArrayList. Cũng như các phương thức để thao tác với các phần tử trong List và những lợi ích mà chúng mang lại trong lập trình Java.

1. Tập hợp List là gì

Tập hợp List được sử dụng để lưu trữ các phần tử theo một thứ tự nhất định. Các phần tử được chứa trong tập hợp list có thể được thêm mới vào, xoá ra hoặc chúng ta có thể lấy nó ra khỏi tập hợp.

Các phần tử trong List đều có một vị trí nhất định trong tập hợp. Vị trí của List luôn bắt đầu là 0, vị trí thứ 2 sẽ là 1. Biết được vị trí của phần tử trong tập hợp thì ta có thể lấy phần tử đó ra thông qua vị trí của nó.

Chúng ta có thể thêm vào các kiểu dữ liệu khác nhau trong List.

2. Các tập hợp cài đặt List

Chúng ta có thể sử dụng các tập hợp sau để cài đặt Interface List :

  • ArrayList
  • LinkedList
  • Vector
  • Stack

Trong những tập hợp trên thì ArrayList được sử dụng nhiều nhất.

  • Để tạo một tập hợp chúng ta có thể khai báo như sau :
1
2
3
4
List listA = new ArrayList();
List listB = new LinkedList();
List listC = new Vector();
List listD = new Stack();


3. ArrayList là gì

ArrayList là một trong những tập hợp trong bộ Java Collection. ArrayList có thể linh động co giãn kích thước tùy ý không như Array[] kích thước khai báo cố định. Trong ArrayList các phần tử có thể được thêm, xóa một cách linh động.

  • Để sử tạo được ArrayList chúng ta sẽ import gói thư viện java util vào
1
2
3
import java.util.ArrayList; // import the ArrayList class

ArrayList<String> cars = new ArrayList<String>(); // Create an ArrayList object
  • Để thêm 1 phần tử chúng ta dùng phương thức add
1
2
3
4
5
6
7
8
9
10
public class MyClass {
  public static void main(String[] args) {
    ArrayList<String> cars = new ArrayList<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");
    System.out.println(cars);
  }
}
  • Để thêm một phần tử vào vị trí mà ta mong muốn


1
list.add(0, "element 4");
  • Để thêm các phần tử từ một list có sẵn vào list khác ta sử dụng phương thức addAll
1
2
3
4
5
6
7
8
List<String> listSource = new ArrayList<>();

listSource.add("123");
listSource.add("456");

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

listDest.addAll(listSource);
  • Để lấy một phần tử chúng ta dùng phương thức get và truyền vào vị trí ta muốn lấy
1
cars.get(0);
  • Để thay đổi giá trị trong phần tử chúng ta dùng phương thức set


1
cars.set(0, "Opel");
  • Để tìm kiếm phần tử trong list ta sử dụng một trong 2 phương thức indexOf hoặc lastIndexOf


1
2
3
4
5
6
7
8
9
10
11
12
13
List<String> list = new ArrayList<>();

String element1 = "element 1";
String element2 = "element 2";

list.add(element1);
list.add(element2);

int index1 = list.indexOf(element1);
int index2 = list.indexOf(element2);

System.out.println("index1 = " + index1);
System.out.println("index2 = " + index2);

Kết quả index 1 là 0 và index 2 là 1

  • Tìm kiếm phần tử cuối cùng của tập hợp ta sử dụng phương thức lastIndexOf như sau
1
2
3
4
5
6
7
8
9
10
11
List<String> list = new ArrayList<>();

String element1 = "element 1";
String element2 = "element 2";

list.add(element1);
list.add(element2);
list.add(element1);

int lastIndex = list.lastIndexOf(element1);
System.out.println("lastIndex = " + lastIndex);

Kết quả lastIndex sẽ là 2.

  • Để xoá một phần tử chúng ta dùng phương thức remove và truyền vào vị trí cần xóa
1
cars.remove(0);
  • Để xóa tất cả các phần tử trong tập hợp ta dùng phương thức clear
1
cars.clear();
  • Để lấy tổng số phần tử trong tập hợp ta dùng phương thức size
1
cars.size();
  • Kiểm tra xem phần tử có trong List hay không chúng ta sử dụng phương thức contains như sau


1
2
3
4
5
6
7
8
9
10
List<String> list = new ArrayList<>();

String element1 = "element 1";

list.add(element1);

boolean containsElement =
    list.contains("element 1");

System.out.println(containsElement);

Kết quả trả về là true

  • Để duyệt các phần tử trong mảng chúng ta dùng vòng lặp
1
2
3
4
5
6
7
8
9
10
11
12
public class MyClass {
  public static void main(String[] args) {
    ArrayList<String> cars = new ArrayList<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");
    for (int i = 0; i < cars.size(); i++) {
      System.out.println(cars.get(i));
    }
  }
}
  • Ngoài ra chúng ta còn có thể sử dụng for each
1
2
3
4
5
6
7
8
9
10
11
12
public class MyClass {
  public static void main(String[] args) {
    ArrayList<String> cars = new ArrayList<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");
    for (String i : cars) {
      System.out.println(i);
    }
  }
}
  • Tạo một sub list từ một list có sẵn. Chúng ta sử dụng phương thức subList để tạo ra một List mới với số lượng phần tử ít hơn và được chọn lọc từ một list có sẵn


1
2
3
4
5
6
7
8
List<String> list      = new ArrayList<>();

list.add("element 1");
list.add("element 2");
list.add("element 3");
list.add("element 4");

List<String> sublist = list.subList(1, 3);
  • Chuyển tập hợp ArrayList thành tập hợp Array bằng phương thức toArray


1
2
3
4
5
6
7
8
List<String> list      = new ArrayList<>();

list.add("element 1");
list.add("element 2");
list.add("element 3");
list.add("element 3");

Object[] objects = list.toArray();
  • Chuyển Array thì một ArrayList bằng phương thức asList


1
2
3
String[] values = new String[]{ "one", "two", "three" };

List<String> list = (List<String>) Arrays.asList(values);
  • Chuyển một ArrayList sang Set bằng phương thức addAll


1
2
3
4
5
6
7
8
9
List<String> list      = new ArrayList<>();

list.add("element 1");
list.add("element 2");
list.add("element 3");
list.add("element 3");

Set<String> set = new HashSet<>();
set.addAll(list);

4. Video Demo

5. Source code

Sourcecode


Mọi người hãy Subscribe kênh youtube dưới đây nhé để cập nhật các video mới nhất về kỹ thuật và kỹ năng mềm

Các khoá học lập trình MIỄN PHÍ tại đây


Comments