在Java 9中如何在JShell中实现Set接口?

2023年 9月 7日 71.9k 0

在Java 9中如何在JShell中实现Set接口?

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 set = Set.of("Adithya", "Chaitanya", "Jai");
set ==> [Jai, Adithya, Chaitanya]

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

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

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

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

登录后复制

在下面的代码片段中,我们必须实现 HashSet,其中元素既不按插入顺序存储,也不按排序顺序存储。

代码片段-2

jshell> Set 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 ,其中元素存储在插入的顺序。

Snippet-3

jshell> Set 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,其中元素存储在 排序顺序。

Snippet-4

jshell> Set 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 9中如何在JShell中实现Set接口?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论