如何在 Java 9 中的 JShell 中实现 Set 接口?
javaobject oriented programmingprogramming更新于 2025/11/13 0:12:17
JShell 是 Java 9 中的命令行工具,用于执行简单语句,如表达式、类、接口、方法等。
Set 是 Java 中的接口,它为具有 唯一元素 的集合指定契约。如果 object1.equals(object2) 返回 true,则 object1 和 object2 中只有一个在 Set 实现中占有一席之地。
在下面的代码片段中,我们必须使用 Set.of() 方法。Set.of() 方法返回的集合是不可变的,因此它不支持 add() 方法。如果我们尝试添加一个元素,则会抛出 UnsupportedOperationException。如果我们想创建一个 HashSet 集合,它支持 add() 方法来测试 Set 的唯一属性。它返回 false 表示插入重复的 "Adithya" 条目失败。
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]
在下面的代码片段中,我们必须实现 HashSet ,其中元素既不按插入顺序存储,也不按排序顺序存储。
代码片段-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]
在下面的代码片段中,我们必须实现 LinkedHashSet ,其中元素按插入的顺序存储。
代码片段-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]
在下面的代码片段中,我们必须实现 TreeSet ,其中元素按排序顺序存储。
代码片段-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]
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

