Java教程

4.29Java Set接口

本文主要是介绍4.29Java Set接口,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

4.29Java Set接口

Set接口的特点

  • Set接口继承了Collection接口---有Collection当中的所有方法,没有新增的方法

  • 没有顺序、不可重复--->核心要点

  • Set当中没有索引,只能遍历查找数据

  • 不允许加入重复的元素,新元素如果和Set中某个元素通过equals方法对比为true,则不可加入

  • Set中只能放入一个null元素,不能多个

  • HashSet和TreeSet使用较多

HashSet的底层源码

特点:

  • HashSet采用哈希算法实现,底层是用HashMap实现

  • 查询效率和增删效率都比较高

public class HashSet<E> implements Set<E>,Cloneable,java.io.Serializable{
    
    private transient HashMap<E,Object>map;
    
    private static final Object PRESENT = new Obejct();
    
    public HashSet(){
        map = new HashMap<E,Object>();
    }
    
    public boolean add(E e){
        return map.put(e,PRESENT) == null;
    }
}

实现排序的关键在于他的add方法当中返回值是刚加入的e元素,然后Value返回的源码里面定义的Object对象

实际上add添加的都是key,HashSet是一个Map

 

这篇关于4.29Java Set接口的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!