Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để triển khai một giao diện Set trong JShell trong Java 9?


JShell là một công cụ dòng lệnh trong Java 9 đã được sử dụng để thực thi các câu lệnh đơn giản như biểu thức, lớp, giao diện, phương thức, v.v.

A Bộ là một giao diện trong Java chỉ định hợp đồng cho các tập hợp có phần tử duy nhất . Nếu object1.equals (object2) trả về true, khi đó chỉ một trong object1 và object2 có vị trí trong triển khai Set.

Trong đoạn mã dưới đây, chúng ta phải sử dụng Set.of () phương pháp. Bộ sưu tập được trả về bởi Set.of () phương pháp là không thể thay đổi nên nó không hỗ trợ add () phương pháp. Nếu chúng tôi cố gắng thêm một phần tử, hãy ném UnsupportedOperationException . Nếu chúng tôi muốn tạo HashSet thay vào đó, bộ sưu tập hỗ trợ add () phương pháp để kiểm tra một thuộc tính duy nhất của một Tập hợp. Nó trả về false cho biết rằng việc chèn một mục nhập "Adithya" trùng lặp đã không thành công.

Snippet-1

jshell> Set<String> set = Set.of("Adithya", "Chaitanya", "Jai");
set ==> [Jai, Adithya, Chaitanya]

jshell> set.add("Adithya");
|   java.lang.UnsupportedOperationException thrown:

jshell> Set<String> hashSet = new HashSet<>(set);
hashSet ==> [Chaitanya, Jai, Adithya]

jshell> hashSet.add("Adithya");
$8 ==> false

jshell> hashSet
hashSet ==> [Chaitanya, Jai, Adithya]


Trong đoạn mã dưới đây, chúng tôi phải triển khai HashSet trong đó các phần tử không được lưu trữ theo thứ tự chèn hoặc theo thứ tự được sắp xếp.

Snippet-2

jshell> Set<Integer> numbers = new HashSet<>();
numbers ==> []

jshell> numbers.add(12345);
$11 ==> true

jshell> numbers.add(1234);
$12 ==> true

jshell> numbers.add(123);
$13 ==> true

jshell> numbers.add(12);
$14 ==> true

jshell> numbers
numbers ==> [1234, 12345, 123, 12]


I n đoạn mã bên dưới, chúng tôi phải triển khai LinkedHashSet trong đó các phần tử được lưu trữ theo thứ tự chèn .

Snippet-3

jshell> Set<Integer> numbers1 = new LinkedHashSet<>();
numbers1 ==> []

jshell> numbers1.add(12345);
$17 ==> true

jshell> numbers1.add(1234);
$18 ==> true

jshell> numbers1.add(123);
$19 ==> true

jshell> numbers1.add(12);
$20 ==> true

jshell> numbers1
numbers1 ==> [12345, 1234, 123, 12]

jshell> numbers1.add(123456);
$22 ==> true

jshell> numbers1
numbers1 ==> [12345, 1234, 123, 12, 123456]


I trong đoạn mã dưới đây, chúng tôi phải triển khai TreeSet trong đó các phần tử được lưu trữ theo thứ tự được sắp xếp .

Snippet-4

jshell> Set<Integer> numbers2 = new TreeSet<>();
numbers2 ==> []

jshell> numbers2.add(12345);
$25 ==> true

jshell> numbers2.add(1234);
$26 ==> true

jshell> numbers2.add(123);
$27 ==> true

jshell> numbers2.add(12);
$28 ==> true

jshell> numbers2
numbers2 ==> [12, 123, 1234, 12345]

jshell> numbers2.add(123456);
$30 ==> true

jshell> numbers2
numbers2 ==> [12, 123, 1234, 12345, 123456]