Java 集合之HashSet经常使用方法实例介绍

一.简介
HashSet是Set常见的子类对象,此类实现Set接口,由哈希表(实际为HashMap实例)支持。 对集合的迭代次序不做任何保证; 特别是,它不能保证订单在一段时间内保持不变。这个类容许null元素。
这个类提供了基本操做(add,remove,contains和size)固定的时间性能,假定哈希函数将分散的桶中正确的元素。 迭代此集合须要与HashSet实例的大小(元素数量)和后台HashMap实例(桶数)的“容量”的总和成比例的时间。 所以,若是迭代性能很重要,不要将初始容量设置得过高(或负载因子过低)是非 常重要的。
Set集合是无序,在存储时哈希表是按哈希值的顺序存储的,所谓的无序就是说在存储的顺序和你加入的顺序可能不一样。当两对象的哈希地址值相同时,哈希表中存储时先判断是否为同一个对象,若为同一个对象则不重复存储,若判断为不一样对象则在其下方顺延而不是向右顺延。
二.经常使用方法说明java

import java.util.HashSet;
import java.util.Iterator;
public class Set_1 {
    public static void main(String[] args){
        //产生HashSet对象
        HashSet hashset1 = new HashSet();
        //添加元素
        boolean b1 = hashset1.add("111");    //添加此元素以前无重复,故返回值为true
        hashset1.add("22");
        hashset1.add("333");
        hashset1.add("1");
        boolean b2 = hashset1.add("111");
        System.out.println("b1="+b1+";b2="+b2); //此元素在集合中已存在,添加后返回值结果为 false
        String arry1[] = {"arry1","arry2","arry3"};
        int arry2[] = {11,22,3,44};
        HashSet hashset2 = new HashSet();
        hashset1.add(arry1);
        hashset1.add(arry2);
        hashset2.add("you");
        hashset2.add("are");
        hashset2.add("yourself");
        //使用addAll添加一个集合
        hashset1.addAll(hashset2);
        System.out.println(hashset1);            //无序,取出的顺序与存入的顺序可能不一样,但每次取出的顺序是相同的哦(不要认为每次取出的顺序都不一样)、
        System.out.println("---------------------开始迭代器--------------------------");
        //迭代器循环取出HashSet中的元素
        Iterator it1 =  hashset1.iterator();
        //使用while,循环获取迭代器中的每一个元素
//        while (it1.hasNext()){
//            System.out.println(it1.next());
//        }
        //使用for,循环获取迭代器中的每一个元素
        System.out.println("it1.hasNext()="+it1.hasNext());
        for (;it1.hasNext();){
            System.out.println(it1.next());
        }

    }
}

待续ide

相关文章
相关标签/搜索