java集合之HashSet哈希SET基础
Posted 香水炸弹熊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java集合之HashSet哈希SET基础相关的知识,希望对你有一定的参考价值。
hashSet实现set接口、serializable、cloneable接口。不允许有重复值,但可以null,不保证与插入顺序一致。
HashSet迭代的时间与HashSet实例的大小(元素的数量)和底层HashSet实例(桶的数量)的“容量”的和成比例。因此,若迭代性能很重要,不要将初始容量设置的太低和加载因子设置的太小。当哈希表中元素数量大于当前容量和装载因子的乘积时,则扩容为大约当前容量的两倍。
其中数据对象必须实现hashCode()函数,HashSet线程不同步,使用Collections.synchronizedSet包装。
构造函数:
HashSet()默认初始大小16,转载因子0.75
HashSet(int initialCapacity)
HashSet(int initialCapacity,float loadFactor)
HashSet(Collection C)
常用方法:
boolean add(E e)
void clear()
boolean contains(Object o)
boolean remove(Object o)
示例:
package test;
import java.util.*;
/**
* @author Administrator
*
*/
public class TestHashSet {
public static void main(String args[]){
HashSet<String> hash=new HashSet<String>();
LinkedList<String> list=new LinkedList<String>();
list.add("list1");
list.add("list2");
list.add("list3");
hash.add("哈希set1");
hash.add("哈希set2");
hash.add("哈希set3");
hash.add("哈希set4");
hash.add("哈希set5");
hash.add("哈希set6");
hash.addAll(list);//添加到哈希set中的list并非作为单独元素存在,[list1, 哈希set6, list3, list2, 哈希set3, 哈希set2, 哈希set5, 哈希set4, 哈希set1]
System.out.println(hash);
hash.remove("哈希set3");
System.out.println(hash);
Iterator<String> it= hash.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
HashSet实际建立在HashMap的基础之上。map的键为set的元素,map的值为常量。
public boolean add(E e){
return map.put(e,PRESENT) == null;
}
以上是关于java集合之HashSet哈希SET基础的主要内容,如果未能解决你的问题,请参考以下文章