您的位置:首页 > 编程语言 > Java开发

java的HashSet的介绍

2015-10-13 15:46 197 查看
public class HashSet<E>extends AbstractSet<E>implements Set<E>, Cloneable, Serializable

构造方法摘要
HashSet()


构造一个新的空集合,其底层 HashMap 实例的默认初始容量是 16,加载因子是 0.75。
HashSet(Collection<? extends
E> c)


构造一个包含指定 collection 中的元素的新 set。
HashSet(int initialCapacity)


构造一个新的空集合,其底层 HashMap 实例具有指定的初始容量和默认的加载因子(0.75)。
HashSet(int initialCapacity, float loadFactor)


构造一个新的空集合,其底层 HashMap 实例具有指定的初始容量和指定的加载因子。
方法摘要
boolean
add(E o)


如果此集合中还不包含指定元素,则添加指定元素。
void
clear()


从此集合中移除所有元素。
Object
clone()


返回此 HashSet 实例的浅表复制:并没有克隆这些元素本身。
boolean
contains(Object o)


Returns 如果此集合不包含指定元素,则返回 true。
boolean
isEmpty()


如果此集合不包含任何元素,则返回 true。
Iterator<E>
iterator()


返回对此集合中元素进行迭代的迭代器。
boolean
remove(Object o)


如果指定元素存在于此集合中,则将其移除。
int
size()


返回此集合中的元素的数量(集合的容量)。
package set;

import java.util.HashSet;

import java.util.Iterator;

import java.util.Set;

public class TestHashSet {

/**

* yy

* 总结:

* 1、HashSet集合的底层实现是hash函数,以及处理碰撞等

* 2、此实现不是同步的

* 它不保证集合的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素

* 此类为基本操作提供了稳定性能,这些基本操作包括 add、remove、contains 和 size,

* 假定哈希函数将这些元素正确地分布在桶中。对此集合进行迭代所需的时间与 HashSet 实例的大小(元素的数量)

* 和底层 HashMap 实例(桶的数量)的“容量”的和成比例。因此,如果迭代性能很重要,则不要将初始容量设置得太高(或将加载因子设置得太低)。

*/

public static void main(String[] args) {

Set<String> set=new HashSet<String>();

set.add("a");

set.add("a");

set.add("b");

System.out.println(set.size());//2

//遍历set集合只能使用迭代器或者增强for

Iterator<String> iterator=set.iterator();

while(iterator.hasNext()){

String v=iterator.next();

System.out.print(v+" ");

}

System.out.println();

for(String s:set){

System.out.print(s+" ");

}

System.out.println();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: