1. JShell介绍
JShell是Java 9中的新特性,是一个基于REPL(Read-Eval-Print-Loop)的交互式Shell,可以让Java开发者更加方便地进行代码实验和调试。
JShell允许用户输入一系列Java代码片段,并能够立即查看结果。使用该工具可以轻松进行API测试、学习或创建示例、快速原型设计等活动。JShell还可以与其他Java开发工具集成,如IDE和文本编辑器。
2. Set接口介绍
Set接口是Java中的一个集合接口,其实现类中不允许出现重复的元素。
在Java中,Set接口有以下3个实现类:
HashSet
TreeSet
LinkedHashSet
其中,HashSet是最常用的一种Set实现类,它是以哈希表为实现方式的Set集合类,由于它不是有序的,因此插入和遍历的效率都很高。
3. 在JShell中实现Set接口
3.1 创建Set集合对象
使用JShell可以轻松创建Set集合对象。
以下是在JShell中创建一个HashSet对象的示例:
jshell> import java.util.HashSet;
jshell> Set<String> set = new HashSet<>();
set ==> []
在上面的代码中,我们首先导入了java.util.HashSet类,然后创建了一个空的HashSet对象,将其赋值给变量set。集合对象的类型为Set<String>,即存储的元素类型为String。
可以看到,当创建好一个空的HashSet对象之后,它的值为[],表示该集合中没有任何元素。
3.2 添加元素到Set集合中
使用JShell可以轻松将元素添加到Set集合中。
以下是在JShell中向HashSet中添加元素的示例:
jshell> Set<String> set = new HashSet<>();
jshell> set.add("Java");
jshell> set.add("is");
jshell> set.add("great");
jshell> set.add("!");
set ==> [!, is, Java, great]
在上面的代码中,我们首先创建了一个空的HashSet对象,然后将元素"Java"、"is"、"great"、"!"添加到该集合中。
在添加元素之后,可以通过直接输入变量名的方式在JShell中查看Set集合对象的内容。可以看到,集合中的元素顺序不固定,因为该集合本身并不是有序的。
3.3 从Set集合中删除元素
使用JShell可以轻松地从Set集合中删除元素。
以下是在JShell中从HashSet中删除元素的示例:
jshell> Set<String> set = new HashSet<>();
jshell> set.add("Java");
jshell> set.add("is");
jshell> set.add("great");
jshell> set.add("!");
set ==> [!, is, Java, great]
jshell> set.remove("is");
$2 ==> true
set ==> [!, Java, great]
jshell> set.remove("Python");
$3 ==> false
set ==> [!, Java, great]
在上面的代码中,我们首先创建了一个HashSet对象,并向其中添加了4个元素。然后,我们使用remove方法从集合中删除了一个元素"is",该方法返回true表示删除成功。接着,我们尝试从集合中删除一个不存在的元素"Python",该方法返回false表示删除失败。最后一行代码展示了集合的内容,可以看到元素"is"已经被成功删除。
3.4 Set集合中的元素不允许重复
在Java中,Set集合中的元素不允许重复。
以下是在JShell中向HashSet中添加重复元素的示例:
jshell> Set<String> set = new HashSet<>();
jshell> set.add("Java");
jshell> set.add("Java");
set ==> [Java]
在上面的代码中,我们首先创建了一个HashSet对象,并向其中添加了两个元素"Java"。可以看到,由于Set集合中的元素不允许重复,因此第二次添加元素时只有一个元素被添加到了集合中。
3.5 Set集合中的元素可以为null
在Java中,Set集合中的元素可以为null。
以下是在JShell中向HashSet中添加null元素的示例:
jshell> Set<String> set = new HashSet<>();
jshell> set.add(null);
jshell> set.add("Java");
set ==> [null, Java]
在上面的代码中,我们向HashSet中添加了一个null元素和一个非null的元素"Java"。
3.6 遍历Set集合中的元素
使用JShell可以轻松遍历Set集合中的元素。
以下是在JShell中遍历HashSet中的元素的示例:
jshell> Set<String> set = new HashSet<>();
jshell> set.add("Java");
jshell> set.add("is");
jshell> set.add("great");
jshell> set.add("!");
jshell> for (String str : set) {
...> System.out.println(str);
...> }
!
is
Java
great
在上面的代码中,我们创建了一个HashSet对象,并向其中添加了4个元素。然后,使用for循环遍历集合中的每个元素,并将其打印到控制台上。
可以看到,HashSet中的元素遍历顺序与添加顺序不同,因为该集合本身不是有序的。
4. 总结
JShell是Java 9中的一个重要特性,它为Java开发者提供了一个轻量级的交互式Shell环境,可以方便地进行代码实验和调试。使用JShell可以轻松地创建、操作和遍历Set集合对象,从而提高代码编写效率。
Set接口是Java中的一个集合接口,其实现类中不允许出现重复的元素。JShell中可以使用HashSet等Set实现类来实现Set集合。要注意的是,在Set集合中添加元素时,不能添加重复的元素。同时,Set集合中的元素可以为null。