Scala Collection – Set

Set là collection của các phần tử không bị trùng lặp với kiểu giống nhau. Không giống như List, Set không chứa các phần tử bị trùng lặp. Set có thể là mutable hoặc immutable. Khi một object là immutable thì nó sẽ không thể bị thay đổi giá trị.

Mặc định Scala sử dụng immutable. Thêm vào scala.collection.mutable.Set để sử dụng mutable Set một cách chính xác.

Hãy xem ví dụ sau đây

Set của kiểu dữ liệu Interger có thể được tạo như sau

Một Set rỗng có thể được tạo như sau

Hoạt động cơ bản trên Set

Các hoạt động cơ bản trên Set bao gồm

  • head → Trả về phần tử đầu tiên của một Set
  • tail → Trả về tất cả các phần tử trừ phần tử đầu tiên của Set
  • isEmpty → trả về true nếu Set là trống, ngoài ra trả về false

Hãy xem ví dụ sau đây

Ở đây chúng ta đang tạo Student object với 2 Set là nameid. Chúng ta gọi các phương thức head, tailisEmpty trên các Set này và in ra kết quả

Kết quả

Ghép nối các Set

Để nối một hoặc nhiều Set sử dụng toán tử ++ hoặc phương thức Set.++() . Khi chúng ta thêm các Set vào thì những phần tử trùng nhau sẽ bị xoá đi.

Hãy xem ví dụ sau đây

Chúng ta đang tạo 2 Set là furniture_1 và furniture_2 và nối chúng thành furniture và furn sử dụng các toán tử ++Set.++

Kết quả

Giá trị chung trong các Set

Phương thức Set.& hoặc Set.intersect được dùng để tìm kiếm các giá trị giống nhau trong 2 hoặc nhiều Set

Xem ví dụ bên dưới đây

Kết quả

Phần tử lớn nhất và nhỏ nhất trong Set

Phương thức Set.min dùng để tìm phần tử nhỏ nhất và phương thức Set.max tìm phần tử lớn nhất trong các phần tử trong Set

Xem ví dụ sau đây

Chúng ta đang tìm các số lớn nhất và nhỏ nhất trong Set num1 sử dụng phương thức minmax

Các phương thức hữu ích

Một vài phương thức trong Set:

  • def contains(elem: X): Boolean → Trả về True nếu phần tử được chứa trong Set, ngoài ra trả về false
  • def last: X → Trả về phần tử cuối cùng
  • def size: Int → Trả về số lượng các phần tử trong immutable Set
  • def product: X →  Trả về tíc các phần tử trong immutable Set sử dụng toán tử *
  • def sum: X → Trả về tổng các phần tử trong immutable Set sử dụng toán tử +
  • def toList: List[X] → Chuyển đổi Set sang List
  • def toSeq: Seq[X] → Chuyển đổi Set sang Seq
  • def toArray: Array[X] → Chuyển đổi Set sang Array
  • def subsetOf(that: Set[X]): Boolean → Trả về true nếu Set này là tập con của that ví dụ tất cả phần tử của Set cũng là phần tử của that
  • def mkString: String → Hiển thị tất cả các phần tử của Set trong một string.

You May Also Like

About the Author: Nguyen Dinh Thuc

Leave a Reply

avatar
  Subscribe  
Notify of