java的HashSet的介绍

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();


}

}

你可能感兴趣的:(java,set)