java set接口 HashSet
HashSet底层是 HashMap实现的。其实HashSet中存放的值,就是HashMap中key值。
如果对HashMap实现不太明白可以参考上篇 java map hashmap博文。
public class HashSet<E>
extends AbstractSet<E>
implements Set<E>, Cloneable, java.io.Serializable
{
static final long serialVersionUID = -5024744406713321676L;
private transient HashMap<E,Object> map;
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();
/**
* Constructs a new, empty set; the backing <tt>HashMap</tt> instance has
* default initial capacity (16) and load factor (0.75).
*/
//通过构造方法HashSet底层是HashMap实现的。
public HashSet() {
map = new HashMap<E,Object>();
}
//set add方法。
public boolean add(E o) {
return map.put(o, PRESENT)==null;
}
//set 遍历,其实就是Map的key
public Iterator<E> iterator() {
return map.keySet().iterator();
}
分享到:
相关推荐
// java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...
java HashSet 集合排序,需要通过利用TreeSet集合排序。2013-10-30。
HashSet 是 Java 中的一个集合类,它实现了 Set 接口并提供了基于哈希表的无序、不重复元素的集合。具体来说,它是通过哈希表(实际上是一个 HashMap 实例)来存储元素的。 以下是 HashSet 的一些主要特点: 无序...
import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; public class HashSetTest { public static void main(String[] args) { HashSet hs = new LinkedHashSet(); hs....
c++一个用vector实现java的HashSet集合类,可以将任何类,数字,字符串,vector等等存放到里面
HashSet 是一个没有重复元素的集合。 它是由HashMap实现的,不保证元素的顺序,而且HashSet允许使用 null 元素。...如果多个线程同时访问一个哈希 set,而其中至少一个线程修改了该 set,那么它必须 保持外部同步。
Java HashSet Java 集合框架 ... HashSet 实现来 Set 接口。 HashSet 中的元素实际上是对象,一些常见的基本类型可以使用它的包装类。 基本类型对应的包装类表如下: 基本类型 引用类型 boolea
一. HashSet源代码 HashSet 的实现 对于 HashSet 而言,它是基于 HashMap 实现的,HashSet ... implements Set, Cloneable, java.io.Serializable { // 使用 HashMap 的 key 保存 HashSet 中所有元素
Java相关 public static void main(String[] args) { User u1=new User(1, "zhangsan"); User u2=new User(2, ... Set userset=new HashSet(); userset.add(u1); userset.add(u2); userset.add(u3);
Java集合框架中的Set接口是一种不允许包含重复元素的集合。Set接口继承自Collection接口,因此它具有Collection接口定义的所有方法。同时,Set接口还具有自己的特殊方法,例如:添加元素、删除元素、判断元素是否...
HashSet集合保证元素一致性
Set是java中一个不包含重复元素的collection。更正式地说,set 不包含满足e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。正如其名称所暗示的,此接口模仿了数学上的 set 抽象。 HashSet与TreeSet...
1203Set.doc 目的:学会使用 Set、 HashSet、 TreeSet 完成内容 1. 写一个 Set 集合,放入 5 个 HashSet 成员 用 iterator 显示出来,注意是否是顺序存放的,显示其
Set集合类似于一个容器,程序把很多对象保存到Set集合中,Set集合对添加顺序不记录,当有重复的对象保存到Set集合时,不会新增后加的重复对象。 Set集合的特点 Set集合无重复元素,add()方法添加相同元素时,...
15、JAVA集合框架之Set接口、HashSet类、TreeSet类 16、JAVA集合框架之Map接口、HashMap类、Trelap类、Hashtable类 17、JAVA异常Exception 18、JAVA线程之基础介绍 19、I0流之基本简介 20、I0流之字符流、字节...
java各种集合的详解Set,List,Vector,arrayList,linkList,HashSet
HashSet实现了Set接口,它不允许集合中有重复的值,当我们提到HashSet时,第一件事情就是在将对象存储在HashSet之前,要先确保对象重写equals()和hashCode()方法,这样才能比较对象的值是否相等,以确保set中没有...
掌握List集合、Set集合、Map集合的使用以及Iterator迭代器和foreach循环的使用 了解常用的集合类 熟悉泛型的使用
Java数据结构--13.Java8数据结构TreeSet 前⾔ ,上⼀篇中对 Set 接⼝最终实现类 HashSet 与 LinkedHashSet 做了介绍与分析,本篇将对另⼀种 Set 接⼝的最终实现类 TreeSet 进⾏ 介绍与分析。 先来看下 TreeSet 完整...