‫Trong bài học này, chúng ta sẽ đề cập đến bảng băm và chúng ta cũng sẽ xem xét các từ điển sau
‫này.
‫Vì vậy, bảng băm và từ điển là một số bộ sưu tập hữu ích nhất trong C sharp.
‫Vì vậy, chúng ta sẽ xem cách xác định chúng và cách sử dụng chúng và trong trường hợp nào, chúng ta nên tận
‫dụng chúng.
‫Để hiểu khái niệm băm và bảng.
‫Đầu tiên, hãy nghĩ về một cuốn từ điển thực sự.
‫Vì vậy, giả sử chúng ta có một từ điển tiếng Đức và tiếng Anh trong đó mỗi từ trong tiếng Đức chỉ tương ứng với một từ
‫trong tiếng Anh, bởi vì điều đó sẽ hạn chế giới hạn ở đây.
‫Vì vậy, khi chúng tôi thử và dịch từ auto, về cơ bản trong tiếng Đức dịch sang tiếng Anh là ô tô, chúng tôi
‫sử dụng một từ làm từ khóa mà chúng tôi có thể tìm kiếm, ví dụ: và kết quả là chúng tôi đã có một bản
‫dịch.
‫Vì vậy, luôn có mối quan hệ 1-1 này.
‫Vì vậy, chúng tôi có ô tô và điều đó chuyển thành ô tô và chúng tôi có thể đạt được chính xác điều đó bằng cách sử dụng bảng băm.
‫Và chúng tôi sẽ sử dụng điều này trong một ví dụ rất cụ thể ở đây.
‫Vì vậy, giả sử chúng ta có một hệ thống đăng ký sinh viên trong đó mọi sinh viên đều có ID và
‫nhiều dữ liệu khác như tên, tuổi, điểm và hình ảnh, v.v.
‫Để một hệ thống như vậy hoạt động, chúng tôi sẽ cần một ID đặc biệt cho mỗi học sinh.
‫Vì vậy, nó phải là duy nhất.
‫Nếu chúng tôi lưu trữ dữ liệu này bằng bảng băm hoặc từ điển, thì mã số sinh viên sẽ là khóa
‫và dữ liệu sinh viên sẽ là một đối tượng chứa tất cả thông tin sinh viên khác và đó sẽ là
‫giá trị.
‫Vì vậy, chúng tôi luôn có cặp giá trị chính này.
‫Vì vậy, đây là cách bạn có thể tìm thấy dữ liệu thực tế, có thể nói, và đây là giá trị đằng sau nó.
‫Vì vậy, bạn có thể xem nó giống như một chiếc tủ đựng đồ.
‫Vì vậy, đây là ID của tủ khóa hoặc vị trí của tủ khóa.
‫Nó có thể là các loại dữ liệu khác nhau.
‫Nó không cần phải là một ID và đây sẽ là giá trị.
‫Vì vậy, từ điển, chúng phải cùng loại trong bảng băm.
‫Chúng có thể thuộc nhiều loại khác nhau.
‫Vì vậy, đây có thể là một số nguyên và đây có thể là một đối tượng, chẳng hạn.
‫Vì vậy, chúng ta sẽ xem xét bảng băm trước.
‫Do đó, chúng tôi sẽ tạo một lớp mới hoặc thực sự là tôi đã chuẩn bị một lớp mới cho việc này.
‫Hãy đặt nó xuống đây.
‫Và nó có một vài thuộc tính.
‫Nó có thuộc tính ID, thuộc tính tên và điểm trung bình.
‫Và sau đó chúng ta có một hàm tạo rất đơn giản chỉ cần gán giá trị.
‫Vì vậy, bất kỳ ID nào chúng ta chuyển cho đối tượng sinh viên khi chúng ta tạo nó sẽ là ID của đối tượng
‫sinh viên, v.v.
‫Vì vậy, không có gì quá lạ mắt ở đây.
‫Chúng ta chỉ đang sử dụng một lớp bình thường như chúng ta đã đề cập trong chương lớp.
‫Tất nhiên, bây giờ chúng tôi có thể tiếp tục và tạo lớp này trong một tệp riêng biệt để chúng tôi có thể
‫tiếp tục và mở trình khám phá giải pháp của mình.
‫Hãy tiếp tục và tạo một tệp mới tại đây.
‫Vì vậy, hãy thêm mục mới hoặc một lớp mới như vậy và gọi nó là học sinh.
‫Nhưng đối với ví dụ này, tôi sẽ giữ nó đơn giản và đưa nó vào một tệp.
‫Như bạn đã biết, cách tốt nhất là đặt nó vào một tệp riêng để bạn không trộn lẫn mọi thứ và bạn có thể
‫dễ dàng tìm thấy các tệp, lớp và tất cả những thứ đó hơn.
‫Được rồi, bây giờ chúng ta đã có lớp học sinh của mình, chúng ta có thể tiếp tục và tạo một bảng băm.
‫Vì vậy, bên trong chương trình của chúng tôi ở đây, trong phương thức chính, đó là nơi tôi sẽ
‫xác định một bảng băm mới và nó sẽ giống như một bảng băm.
‫Và tôi sẽ gọi đây là một bảng, đó sẽ là bảng băm mới.
‫Lớp bảng băm nằm bên trong các tập hợp hệ thống, vì vậy chúng ta cần thêm không gian tên này vào đây bằng cách sử dụng
‫các tập hợp hệ thống.
‫Vì vậy, bảng băm và nó khác với không gian tên bảng băm vì đó là cách tôi gọi là của tôi, điều này có thể
‫gây nhầm lẫn cho ID của chúng tôi ở đây nếu chúng tôi muốn nhập bảng băm mà không cần thêm không gian tên này vào dự án của
‫chúng tôi.
‫Nhưng bây giờ chúng ta có nó bên trong lớp chương trình của mình, chúng ta có thể sử dụng nó.
‫Vì vậy, chúng tôi có bảng băm mới này, bây giờ sẽ là một bảng dữ liệu và chúng tôi có thể đặt dữ liệu mà chúng tôi muốn
‫vào đó.
‫Vì vậy, đây là cách bạn có thể tạo một bảng băm như vậy, cách bạn có thể khởi tạo nó với một đối tượng bảng băm trống
‫như chúng ta đã làm ở đây.
‫Vì vậy, bây giờ những gì chúng ta có thể làm là chúng ta có thể gán các giá trị cho bảng băm này và thậm chí chúng ta có thể gọi nó là
‫bảng của học sinh để làm cho mã của chúng ta dễ đọc hơn một chút.
‫Vì vậy, bây giờ chúng ta chỉ cần tạo một nhóm sinh viên mà chúng ta muốn có trong bảng của mình.
‫Vì vậy, hãy để tôi thêm chúng vào đây.
‫Tôi sẽ gọi chúng là stud một, 2 đến 3, bước bốn, và tất cả chúng sẽ là những đối tượng sinh viên mới.
‫Vì vậy, đây sẽ là sinh viên có ID, một sẽ là Maria.
‫Cô ấy có điểm trung bình là 98.
‫Sau đó, chúng tôi có JSON sẽ có ID của một.
‫Đây là ID này ở đây, mã định danh duy nhất, có thể nói, và sau đó là điểm trung bình mà học sinh có.
‫Được chứ.
‫Vì vậy, bây giờ chúng ta có tất cả những sinh viên đó và chúng ta có thể gán chúng vào bảng sinh viên của mình bằng cách sử dụng ID
‫sinh viên.
‫Và thực hành tốt là hãy tiếp tục và ở lại bảng sinh viên chấm thêm và ở đây chúng tôi sử dụng một
‫ID sinh viên để ID này ở đây là thuộc tính làm khóa.
‫Vì vậy, bạn có thể thấy ở đây một bảng băm cho phép chúng ta có một đối tượng kiểu khóa để nó có thể là bất
‫kỳ loại đối tượng nào làm khóa và nó có thể là một đối tượng tùy chọn hoặc có thể biết được dưới dạng giá trị.
‫Vì vậy, chúng ta có thể gán một giá trị hoặc nó có thể là null.
‫Được rồi, nhưng chúng ta sẽ gán một giá trị và đó sẽ là giá trị của chính học sinh.
‫Vì vậy, bây giờ chúng tôi đã thêm một học sinh của chúng tôi vào bảng học sinh của chúng tôi và chúng tôi có thể làm điều tương tự với các học sinh khác và chúng
‫tôi sẽ sử dụng ID của họ cho từng người trong số họ.
‫Vì vậy, chúng ta hãy sử dụng bảng của học sinh ở đây cho tất cả chúng.
‫Được chứ.
‫Vì vậy, đó là bảng băm của chúng tôi bây giờ, nhưng làm thế nào chúng tôi có thể tìm nạp các mục nhập?
‫Vì vậy, làm thế nào chúng ta có thể lấy các mục nhập từ bảng băm của chúng ta?
‫Vâng, chúng ta hãy xem xét các cách khác nhau cho nó.
‫Vì vậy, điều đầu tiên chúng ta có thể làm là chúng ta có thể tạo một đối tượng student ở đây.
‫Vì vậy sinh viên và đối tượng này sẽ được gọi là sinh viên được lưu trữ.
‫Vì vậy, tôi sẽ lấy giá trị sinh viên từ bảng của mình.
‫Vì vậy, trong trường hợp này, đó là bàn học sinh.
‫Bàn học sinh như vậy.
‫Và ở đây tương tự như cách tôi truy cập nó trong một mảng.
‫Làm thế nào X là một giá trị trong một mảng, tôi có thể truy cập nó bằng một ID.
‫Vì vậy, ví dụ ở đây, giả sử tôi muốn lấy một cái ở ID một cái như vậy.
‫Vì vậy, vấn đề ở đây là bảng băm này có thể có các giá trị thuộc kiểu đối tượng, đúng như chúng ta đã thấy
‫trước đó.
‫Vì vậy, ở đây, nếu chúng ta tiếp tục và gọi phương thức add, bạn có thể thấy chúng ta có thể gán một khóa, nhưng sau đó giá
‫trị sẽ là đối tượng kiểu.
‫Và điều đó có nghĩa là ở đây sẽ là đối tượng kiểu.
‫Nhưng chúng ta không thể chỉ định một kiểu đối tượng cho học sinh.
‫Nó phải là học sinh loại trừ vì một học sinh được lưu trữ này trên thực tế là học sinh loại.
‫Vì vậy, chúng tôi cần đảm bảo rằng chúng tôi chuyển nó thành một học sinh ở đây và sau đó điều này sẽ hoạt động.
‫Được rồi, vì vậy chúng tôi đang truyền đối tượng này vào một học sinh vì chúng tôi biết rằng bên trong bàn của học sinh
‫ở vị trí một.
‫Vì vậy, tại ID một, giá trị trên thực tế sẽ là loại sinh viên.
‫Vì vậy, ở đây bạn có thể lấy sinh viên ở ID một, bạn có thể lấy sinh viên ở ID hai, v.v.
‫Nhưng điều đó chỉ hoạt động bởi vì chúng tôi biết rằng chúng tôi đang sử dụng trên thực tế những con số này.
‫Vì vậy, nếu bạn muốn lấy nó, nếu không, bạn có thể sử dụng cái thứ ba theo ID.
‫Vì vậy, điều này bây giờ sẽ cung cấp cho bạn giá trị đằng sau một ID sinh viên.
‫Vì vậy, điều này về cơ bản sẽ cung cấp cho bạn giá trị này ở đây hoặc sinh viên này ở đây.
‫Và chính xác là nó là cái này.
‫Vì vậy, cái này ở đây, bởi vì đó là những gì chúng tôi đang lưu trữ tại ID này.
‫Vì vậy, bây giờ chúng ta có thể tiếp tục và làm điều gì đó như thế này, thay vì viết hello world, chúng ta sẽ thực sự viết
‫một cái gì đó hữu ích ở đó chúng ta viết mã số sinh viên, tên của học sinh, cũng như điểm trung
‫bình của anh ta.
‫Vì vậy, chúng tôi sẽ sử dụng ID sinh viên một chấm được lưu trữ.
‫Vì vậy, chúng tôi nhận được ID của anh ấy, chúng tôi có tên của anh ấy và chúng tôi nhận được điểm trung bình của anh ấy.
‫Và trong trường hợp này, đó là điểm trung bình của cô ấy, v.v., bởi vì đó là Maria ở vị trí một và ID một.
‫Được rồi, hãy chạy cái này và bạn có thể thấy thẻ sinh viên có một tên là Maria và điểm trung bình là 98.
‫Vì vậy, ở đây chúng ta đã thấy cách chúng ta có thể tạo một bảng băm.
‫Đây là cách chúng ta có thể lưu trữ dữ liệu trong bảng băm.
‫Trên thực tế, đây là nơi chúng tôi lưu trữ dữ liệu trong bảng băm.
‫Và đây là cách chúng ta có thể lấy dữ liệu từ bảng băm.
‫Vì vậy, bây giờ giả sử chúng ta muốn thực sự in tất cả dữ liệu bên trong bảng băm của chúng ta và chúng ta không
‫có một khóa cụ thể nào theo ý của mình.
‫Chúng ta có thể làm điều đó một cách đơn giản bằng cách lấy tất cả các khóa từ bảng băm của chúng ta để giải quyết vấn đề này.
‫Đầu tiên, chúng ta phải thảo luận về một cấu trúc được gọi là mục từ điển.
‫Bất cứ khi nào chúng tôi thêm một mục mới vào bảng băm của chúng tôi.
‫Vì vậy, cặp giá trị khóa của chúng tôi, một đối tượng mục từ điển mới sẽ được tạo cho chúng tôi và nó sẽ được
‫chèn vào bảng băm của chúng tôi, có nghĩa là bảng băm về cơ bản là một tập hợp các mục từ điển.
‫Vì vậy, bằng cách sử dụng một đối tượng tạm thời của mục nhập từ điển, chúng ta có thể xem qua bảng băm của mình bằng cách sử dụng vòng lặp for
‫each.
‫Vì vậy, chúng ta hãy xem xét điều này trong ví dụ cụ thể này ở đây, nơi tôi sẽ tiếp tục và sử dụng một cho mỗi vòng
‫lặp ở đây.
‫Và điều này cho mỗi loại vòng lặp sẽ là mục từ điển.
‫Đó là cấu trúc mà tôi đã nói đến.
‫Bạn có thể xem mục từ điển struct tại đây.
‫Vậy tên mục mà tôi sẽ sử dụng là gì?
‫Tôi sẽ sử dụng mục nhập.
‫Tất nhiên, bạn có thể gọi đây là sinh viên hoặc bất cứ điều gì vì bạn biết rằng các mục
‫nhập sẽ thuộc loại sinh viên, nhưng giả sử bạn không biết điều đó và bạn cũng có thể gọi nó là mục nhập.
‫Và sau đó bộ sưu tập mà chúng ta muốn chạy qua nó là gì hoặc chúng ta muốn lấy các giá trị từ đó là gì, và đó
‫sẽ là bảng học sinh của chúng ta.
‫Vì vậy, một trong những truy xuất này.
‫Một mục riêng lẻ với ID đã biết.
‫Và đây.
‫Lấy tất cả các giá trị từ bảng băm.
‫Được chứ.
‫Vì vậy, một mục nhập bên trong bảng băm của chúng tôi thuộc loại mục nhập từ điển, như tôi vừa nói.
‫Vì vậy, điều này cho phép chúng ta bây giờ trải qua điều này.
‫Bảng, bảng học sinh và về cơ bản hiển thị các giá trị.
‫Vì vậy, ở đây, bởi vì giá trị mục nhập sẽ trả về một đối tượng, bạn có thể thấy ở đây nó cho biết đối tượng.
‫Nhưng những gì chúng tôi muốn để có được thông tin chi tiết về học sinh sẽ là đối tượng học sinh.
‫Những gì chúng ta cần làm là chúng ta sẽ cần làm những việc sau.
‫Vì vậy, chúng tôi tạo ra một giá trị tạm thời, đó sẽ là giá trị đầu vào của chúng tôi.
‫Bây giờ chúng ta có cùng một vấn đề mà chúng ta đã gặp ở đây là chúng ta cần chuyển nó thành một học sinh vì nó chỉ là một đối
‫tượng, phải không?
‫Nhưng chúng tôi muốn nó thuộc loại sinh viên để chúng ta có thể truy cập các thuộc tính sinh viên.
‫Vì vậy, bởi vì nếu không có dấu chấm giá trị mục nhập, nó không có ID ở đây, tôi không thể truy cập ID của nó, tôi không thể truy cập tên
‫của nó, tất cả những thứ đó mặc dù nó tồn tại trong đó.
‫Nhưng ID của chúng tôi không cho phép điều đó bởi vì trước tiên chúng tôi cần đảm bảo rằng chúng tôi chuyển đổi hoặc truyền giá trị
‫vào đúng loại, đó sẽ là loại học sinh của chúng tôi.
‫Vì vậy, bây giờ chúng tôi đang truyền nó, chúng tôi đang lưu trữ nó tạm thời và bây giờ chúng tôi có thể tiếp tục và ghi các giá trị riêng
‫lẻ vào bảng điều khiển của chúng tôi, chẳng hạn hoặc sử dụng chương trình của chúng tôi theo cách chúng tôi muốn.
‫Vì vậy, ở đây chúng ta có thể sử dụng ID sinh viên bằng cách sử dụng ID mẫu vì tạm thời bây giờ là loại sinh viên và
‫sinh viên có tên ID là điểm trung bình và chúng ta có thể truy cập tất cả những thứ đó để lặp lại toàn bộ danh sách tất cả sinh viên của
‫chúng ta.
‫Vì vậy, hãy làm điều đó thực sự nhanh chóng.
‫Hãy chạy mã của chúng tôi và xem điều này cho mỗi vòng lặp có tác dụng gì đối với chúng tôi để bạn có thể thấy nó đi qua nó.
‫Nó nói rằng.
‫SINH VIÊN bốn Steve.
‫SINH VIÊN ba Sclera.
‫HỌC SINH hai là Jason và một là Maria.
‫Vì vậy, bạn thấy nó đi từ ngược lại đến tốt, nó bắt đầu từ mục nhập cuối cùng và đi lên mục nhập đầu tiên.
‫Bây giờ, đó là nếu tại thời điểm này, chúng tôi không biết đó có phải là học sinh hay không, mặc dù chúng tôi đang chuyển đổi
‫nó thành học sinh.
‫Điều này thực sự chỉ để cho bạn thấy rằng một bảng băm thực sự chỉ là một tập hợp các mục từ điển.
‫Vì vậy, hãy xem cách chúng ta có thể đơn giản hóa điều này cho mỗi vòng lặp.
‫Chúng ta có thể đơn giản hóa nó bằng cách thực sự nói cho mỗi nơi mà kiểu biến sẽ là học sinh.
‫Tên mục, tốt, bạn có thể gọi nó là học sinh.
‫Tôi chỉ sẽ gọi nó là giá trị như thế nào.
‫Vậy là ổn.
‫Và tập hợp mà tôi muốn xem qua sẽ là bảng trong khi các bảng của học sinh chấm các giá trị.
‫Vì vậy, có bộ sưu tập AI này về các giá trị bảng băm.
‫Vì vậy, hãy nhận một bộ sưu tập AI chứa các giá trị trong bảng băm.
‫Vì vậy, điều này cho phép chúng tôi xem qua các giá trị một cách trực tiếp mà không cần phải làm như vậy.
‫Về cơ bản, hãy làm những gì chúng tôi đã làm ở đây, nơi chúng tôi chuyển đổi nó hoặc nơi chúng tôi truyền nó thành một đối tượng học sinh.
‫Vì vậy, bây giờ chúng ta có thể tiếp tục và.
‫Làm điều tương tự như chúng tôi đã làm ở đây.
‫Nhưng bây giờ, tất nhiên, nó sẽ là ID giá trị, v.v. bởi vì nó không phải là mục nhập và nó không phải là tạm thời,
‫nhưng nó sẽ có giá trị thực tế bởi vì đó là điều này cho mỗi nhóm.
‫Là cung cấp cho chúng tôi cho mỗi lần lặp lại của nó, nơi nó đi qua tất cả các giá trị mà chúng tôi có.
‫Và giá trị sẽ là giá trị riêng lẻ mà chúng tôi hiện đang xem xét cho lần lặp cụ thể đó.
‫Vì vậy, trong lần lặp đầu tiên, nó sẽ được.
‫Steve.
‫Sau đó sẽ là Clara, sau đó là Jason, rồi đến Maria.
‫Vì vậy, nếu chúng ta loại bỏ dòng này ở đây hoặc nó cho mỗi vòng lặp và chúng ta chạy lại nó, chúng ta sẽ thấy rằng chúng ta
‫nhận được kết quả tương tự.
‫Vì vậy, Steve, Clara, Jason và Maria.
‫Được chứ.
‫Vì vậy, đó là phần giới thiệu nhanh về bảng băm và video tiếp theo, tôi sẽ có một thử thách
‫nhỏ dành cho bạn trong đó về cơ bản bạn sẽ mở rộng mã của mình một chút để hiểu bảng băm tốt hơn một chút.
‫Và sau đó chúng ta sẽ xem xét từ điển.