Scala Collection – List

Scala collection là một container mà giữ tập hợp các phần tử được sắp xếp theo thứ tự như là List, Set, Tuple, Option, Map…Collection có thể là strict hoặc lazy. Bộ nhớ sẽ không được cấp phép nếu chúng chưa được truy cập. Collection có thể là mutable hoặc immutable.

Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu về List

List

Các phần tử của List đều có cùng kiểu dữ liệu. List giống như là một array nhưng có 2 điểm khác đó là List có thể là một immutable và List miêu tả một danh sách nối tiếp trong khi array là phẳng, không thay đổi.

List được diễn tả bằng List[T], trong đó T là kiểu dữ liệu của các phần tử

Hãy cùng xem ví dụ sau

Có thể một List trống như sau

Có thể tạo một List 2 chiều như sau

Các hoạt động cơ bản

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

  • head: trả về phần tử đầu tiên của List
  • tail: Trả về tất cả các phần tử trừ phần tử đầu tiên
  • isEmpty: Trả về true nếu list là trống

Hãy cùng xem ví dụ về những hoạt động này

Chúng ta đang tạo một student object với 2 List là namesage. Chúng ta gọi các phương thức head, tail và isEmpty với names và isEmpty với age.

Để xem kết qủa bằng cách sử dụng câu lệnh Student.main(null) và kết quả nhận được như sau

Bạn cũng có thể chạy đoạn code ở trên trong file Student.scala

Nối các List

Để nối các List chúng ta sử dụng ::: hoặc List().:::: hoặc phương thức concat để nối 2 hoặc nhiều List

Hãy cùng xem ví dụ bên dưới đây

Chúng ta tạo 2 List là country_1country_2 và nối lại với nhau thành country sử dụng toán tử :::. Trong trường hợp thứ 2, chúng ta sử dụng toán tử .::: để nối country_1country_2 thành cont và dữ liệu của list thứ 2 country_2 sẽ được chèn vào trước rồi mới đến dữ liệu của country_1 được hiện ra.

Cuối cùng chúng ta sử dụng phương thức concat để nối country_1country_2 thành con

Kết quả

Reverse

Cấu trúc dữ liệu List cung cấp phương thức reverse để đảo ngược các phần tử của list

Hãy cùng xem ví dụ dưới đây

Ở đây chúng ta sử dụng phương thức reverse để đảo ngược các phần tử của country

Kết quả

Tạo List giống nhau

Phương thức List.fill() tạo 0 hoặc nhiều hơn copy của cùng một phần tử

Hãy cùng xem ví dụ bên dưới đây

Ở đây chúng ta sử dụng phương thức fill và tạo một List name với 6 phần tử có cùng một tên là “Rehan”. một list id với 6 phần tử với cùng một giá trị là 12

Kết quả

Các phương thức

Sau đây là một số các phương thức được hỗ trợ trong List

  • def distinct: List[X] → Tạo một List mới từ một List mà không có phần tử nào trùng nhau
  • def indexOf(elem: X, from: Int): Int  Tìm index của giá trị xuất hiện đầu tiên trong List sau hoặc tại index bắt đầu.
  • def length: Int → Trả về độ dài của List
  • def sorted[Y >: X]: List[X] → Sắp xếp List theo thứ tự
  • def sum: A → Tính tổng của tất cả các phần tử trong List này
  • def toString(): String → Chuyển đổi List thành String
  • def min: A → Tìm phần tử nhỏ nhất
  • def max A → Tìm phần tử lớn nhất
  • def lastIndexOf(elem: A, end: Int): Int → Tìm index của giá trị xuất hiện cuối cùng trước hoặc tại index cuối cùng
  • def toMap[X, Y]: Map[X, Y] →  Chuyển đổi List thành Map

 

You May Also Like

About the Author: Nguyen Dinh Thuc

Leave a Reply

avatar
  Subscribe  
Notify of