Set trong Java

Tập hợp Set trong Java là gì?

Set Interface là một loại Interface Collection. Khác với List, các phần tử trong List có thể giống nhau, còn đối với Set, các phần tử trong Set là duy nhất (nghĩa là giá trị của các phần tử này không được giống nhau). Các phần tử trong Set là duy nhất, chúng ta có thể thêm, xóa, sửa các phần tử trong Set.

Set trong Java

Ví dụ tạo một Set như sau:

import java.util.HashSet;

public class SetExample {
    public static void main(String[] args) {
        Set setA = new HashSet();
        setA.add(element);
        System.out.println( setA.contains(element) );
    }
}

Trong ví dụ trên ta tạo ra một tập hợp Set với implementation (lớp thực thi) là HashSet. Ngoài HashSet thì chúng ta có những lớp implementation của Set như sau:

  • EnumSet
  • HashSet
  • LinkedHashSet
  • TreeSet

Mỗi một implementation của Set đều chứa đựng sự khác biệt về cách sử dụng và tốc độ xử lý các phần tử trong tập hợp. Tuỳ vào yêu cầu bài toán mà ta có thể chọn các loại tập hợp Set tương ứng. Chi tiết mỗi tập hợp sẽ được nói trong từng bài cụ thể sau. Ví dụ:

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

public class SetExample {
    public static void main(String[] args) {
        Set setA = new HashSet();
        Set setB = new LinkedHashSet();
        Set setC = new TreeSet();

    }
}

Thêm một phần tử vào Set

Để thêm một phần tử vào Set ta sử dụng phương thức add(). Ví dụ:

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

public class SetExample {
    public static void main(String[] args) {
       Set<String> setA = new HashSet<>();
      setA.add("element 1");
      setA.add("element 2");
      setA.add("element 3");

    }
}

Duyệt qua các phần tử trong Set

Sử dụng Iterator để duyệt qua các phần tử trong một set. Ví dụ:

Set<String> setA = new HashSet<>();

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

Iterator<String> iterator = set.iterator();

while(iterator.hasNext(){
  String element = iterator.next();
}

Chúng ta cũng có thể sử dụng For Each để duyệt qua các phần tử:

Set set = new HashSet();

for(Object object : set) {
    String element = (String) object;
}

Xóa một phần tử trong Set

Chúng ta sử dụng phương thức remove() để xóa phần tử trong Set. Ví dụ:

set.remove("object-to-remove");

Xóa tất cả các phần tử trong Set

Để xóa tất cả các phần tử ta sử dụng phương thức clear(). Ví dụ:

set.clear();

Thêm tất cả các phần tử từ một tập hợp Set khác

Set cung cấp cho chúng ta phương thức addAll() để thêm các phần tử từ một tập hợp khác vào trong Set. Ví dụ:

Set<String> set = new HashSet<>();
set.add("one");
set.add("two");
set.add("three");

Set<String> set2 = new HashSet<>();
set2.add("four");

set2.addAll(set)

Kiểm tra kích thước của Set

Chúng ta sử dụng phương thức size() để xem có bao nhiêu phần tử trong Set. Ví dụ:

Set<String> set = new HashSet<>();

set.add("123");
set.add("456");
set.add("789");

int size = set.size();

Kiểm tra Set có rỗng không

Để kiểm tra Set có rỗng không ta sử dụng phương thức isEmpty()

Set<String> set = new HashSet<>();
boolean isEmpty = set.isEmpty();

Kiểm tra một phần tử đã tồn tại trong Set chưa

Chúng ta sử dụng phương thức contains() để kiểm tra xem phần tử đã tồn tại trong Set chưa. Ví dụ:

Set<String> set = new HashSet<>();

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

boolean contains123 = set.contains("123");

Chuyển tập hợp Set thành List

Chúng ta có thể cover một tập hợp Set thành List bằng phương thức addAll(). Ví dụ:

Set<String> set = new HashSet<>();
set.add("123");
set.add("456");

List<String> list = new ArrayList<>();
list.addAll(set);
Bài trước
left Bài trước
left So sánh ArrayList và LinkedList
Bài tiếp theo
HashSet trong Java right
Bài tiếp theo right
Avatar Techmely Team
VIẾT BỞI

Techmely Team