大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容介绍了“Set接口的特点是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
创新互联为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到成都网站制作、成都网站设计, 我们的网页设计师为您提供的解决方案。
Set集合最大的特点就是不允许保存重复元素,其也是Collection子接口。
在JDK1.9以前Set集合与Collection集合的定义并无差别,Set继续使用了Collection接口中提供的方法进行操作,但是从JDK1.9后,Set集合也像List集合一样扩充了一些static方法,Set集合的定义如下:
public interface Setextends Collection
需要注意的是Set集合并不像List集合那样扩充了许多的新方法,所以无法使用List集合中提供的get()方法,也就是说无法实现指定索引数据的获取,Set接口的继承关系如下。
Set接口继承关系
从JDK1.9后,Set集合也提供了像List集合中类似的of()的静态方法。下面就使用此方法进行Set集合特点的验证。
范例:验证Set集合特征
import java.util.Set;public class JavaAPIDemo {public static void main(String[] args) throws Exception { //进行Set集合数据的保存,并设置有重复的内容 Setall=Set.of("Hello","World","MLDN","Hello","World"); all.forEach(System.out::println); //直接输出 //Exception in thread "main">
当使用of()这个新方法的时候,如果发现集合中存在重复元素则会直接抛出异常。这与传统的Set集合不保存重复元素的特点相一致,只不过自己抛出了异常而已。
Set集合的常规使用形式一定是依靠子类进行实例化的,所以Set接口之中有两个常用的子类:HashSet、TreeSet。
HashSet是Set接口中使用最多的一个子类,其最大的特点就是保存的数据是无序的,而HashSet子类的继承关系如下:
public class HashSetextends AbstractSet implements Set , Cloneable, Serializable
这种继承的形式和之前的ArrayList是非常相似的,那么现在来观察一下类的继承结构:
HashSet子类
范例:观察HashSet类
import java.util.HashSet;import java.util.Set;public class JavaAPIDemo {public static void main(String[] args) throws Exception { Setall = new HashSet (); all.add("MLDN"); all.add("NiHao"); all.add("Hello"); all.add("Hello"); //重复元素 all.add("World"); all.forEach(System.out::println); } }/** * NiHao * Hello * World * MLDN */
通过执行结果就可以发现HashSet的操作特点:不允许保存重复元素(Set接口定义的),另外一个特点就是HashSet中保存的数据是无序的。
Set接口的另外一个子接口就是TreeSet,与HashSet最大区别在于TreeSet集合里面保存的数据是有序的,首先来观察TreeSet类的定义:
public class TreeSetextends AbstractSet implements NavigableSet , Cloneable, Serializable
在这个子类中依然继承了AbstractSet父抽象类,同时又实现了一个NavigableSet父接口。
范例:使用TreeSet子类
import java.util.TreeSet;import java.util.Set;public class JavaAPIDemo {public static void main(String[] args) throws Exception { Setall = new TreeSet (); all.add("MLDN"); all.add("NiHao"); all.add("Hello"); all.add("Hello"); //重复元素 all.add("World"); all.forEach(System.out::println); } }/** * Hello * MLDN * NiHao * World */
当利用TreeSet保存数据的时候,所有的数据将按照数据的升序进行自动排序处理。
“Set接口的特点是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!