API学习HashSet

package com.wonders.week01.collection;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/**
 * HashSet
 * (1)HashSet实现了Set接口,后面是一个哈希表(实际上是一个HashMap的实例)。
 * (2)它不能保证集合的迭代顺序,尤其是它并不能保证顺序会随着时间的推移而保持不变。
 * (3)这个类是允许有null元素存在的。
 * (4)这个类中的基本操作方法的时间复杂度都是常数阶(add,remove,contains,size)。
 * (5)假设哈希函数把元素恰当的分散在容器中,在这个集合上迭代需要时间与HashSet实例的大小
 * (元素的数量)和支持HashMap实例的“容量”(bucket的数量)成比例。因此如果迭代性能不是特别重要
 * 把初始容量大小设置的不要过高(负载因子设置过低)是很重要的。
 * (6)是一个非线程安全的集合类
 * @author liyongyong
 *
 */
public class HashSetTest {

	public static void main(String[] args) {
		HashSet<String> hashSet = new HashSet<String>();
		Set<String> set = new HashSet<String>();
		//向set中添加元素
		hashSet.add("one");
		hashSet.add("two");
		set.add("three");
		set.add("four");
		//返回hashSet集合中的元素个数
		int size = hashSet.size();
		System.out.println("这个hashSet集合中的元素个数为: " + size);
		//返回hashset集合中元素的迭代
		Iterator<String> iterator = hashSet.iterator();
		while (iterator.hasNext()) {
			String string = (String) iterator.next();
			System.out.print( string + "  ");
		}
		System.out.println();
		//判断该集合是否有元素存在,如果存在则返回false,如果不存在则返回true
		boolean flag = hashSet.isEmpty();
		System.out.println("该集合是否为空 :" + flag);
		//判断该集合中是否包含该元素,如果包含则返回true,否则返回false
		boolean contain = set.contains("");
		System.out.println("该集合是否包含该对象 : " + contain);
		//向set集合中添加一个元素,如果该元素已经存在于集合中,则会返回false,如果不存在就会返回true
		boolean add1 = set.add("three");
		System.out.println("是否添加成功: " + add1);
		boolean add2 = set.add("five");
		System.out.println("是否添加成功: " + add2);
		boolean r = set.remove("three");
		System.out.println("是否移除成功:" + r);
		//移除hashset集合中的所有元素
		//set.clear();
		//返回一个hashSet实例的浅克隆,元素本身是不会被复制的。
		hashSet.clone();
	}
}

这里写图片描述

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值