Java初学之中的HashSet常用方法

 从Collection类下面有两个重要分支,List和Set接口,Se接口下是AbstractSet抽象类,下面有TreeSet和HashSet,我们今天就来介绍一下,HashSet的几种常用方法。

1、add方法,向HashSet集合中添加元素;

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

public class Test {

	public static void main(String[] args) {
		
		HashSet<String> set = new HashSet<String>();//调用HashSet无参构造方法——>创建HashMap对象并给map全局变量
		set.add("Tom");//向HashSet集合中添加元素,HashSet add方法实质是map全局变量调用了put方法,将数据存到了key——→因为HashMap 的 key 不允许重复,所以HashSet添加的元素也不允许重复
		set.add("Jerry");//注意:不会按照保存的顺序存储数据;遍历是不能保证下次结果和上次相同
	}
}

对于HashSet的的参构造方法代码为——

    public HashSet() {
        map = new HashMap<>();
    }

创建了HashMap对象并给map全局变量。

HashSet add方法源码如下

    public boolean add(E e) {
        return map.put(e, PRESENT)==null;
    }

显然HasSet中的值都本质上是map调用put方法,变成了HashMap中的key,因为HashMap中key不允许重复,所以HashSet添加的元素也不允许重复。

2、size() :返回Set集合中的元素个数

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

public class Test {

	public static void main(String[] args) {
		
		HashSet<String> set = new HashSet<String>();
		set.add("Tom");
		set.add("Jerry");
                System.out.println(set.size());//获取集合容器中有多少个元素
	}
}

3、isEmpty() :如果Set不包含元素,则返回 true ,否则返回false

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

public class Test {

	public static void main(String[] args) {
		
		HashSet<String> set = new HashSet<String>();
		set.add("Tom");
		set.add("Jerry");
                System.out.println(set.size());//获取集合容器中有多少个元素
                System.out.println(set.isEmpty());//集合为空,true,反之则为false
	}
}

4、remove(Object  obj)方法,删除Set集合中的元素,删除成功返回true,否则返回false。

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

public class Test {

	public static void main(String[] args) {
		
		HashSet<String> set = new HashSet<String>();
		set.add("Tom");
		set.add("Jerry");
                System.out.println(set.size());//获取集合容器中有多少个元素
                System.out.println(set.isEmpty());//集合为空,true,反之则为false
                set.remove("Tom") : 删除Set集合中的元素,删除成功返回true,否则返回false。

	}
}

5、clear() : 移除此Set中的所有元素

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

public class Test {

	public static void main(String[] args) {
		
		HashSet<String> set = new HashSet<String>();
		set.add("Tom");
		set.add("Jerry");
                System.out.println(set.size());//获取集合容器中有多少个元素
                System.out.println(set.isEmpty());//集合为空,true,反之则为false
                set.remove("Tom");
                set.clear();

	}
}

6、iterator() :返回在此Set中的元素上进行迭代的迭代器

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

public class Test {

	public static void main(String[] args) {
		
		HashSet<String> set = new HashSet<String>();
		set.add("Tom");
		set.add("Jerry");
                System.out.println(set.size());//获取集合容器中有多少个元素
                System.out.println(set.isEmpty());//集合为空,true,反之则为false
		Iterator<String> iterator = set.iterator();//将HashSet中数据转存至iterator
		while(iterator.hasNext()) {
			System.out.println(iterator.next());
		}

	}
}

7、contains(Object o):如果Set包含指定的元素,则返回 true,否则返回false

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

public class Test {

	public static void main(String[] args) {
		
		HashSet<String> set = new HashSet<String>();
		set.add("Tom");
		set.add("Jerry");
                System.out.println(set.size());//获取集合容器中有多少个元素
                System.out.println(set.isEmpty());//集合为空,true,反之则为false
		Iterator<String> iterator = set.iterator();//将HashSet中数据转存至iterator
		while(iterator.hasNext()) {
			System.out.println(iterator.next());
		}
		boolean flag = set.contains("Tom");//判断元素中是否包含参数指定对象
		System.out.println(flag);
		
		flag =set.remove("ABC");//删除元素,成功true
		System.out.println(flag);

	}
}

HashSet之中元素不允许重复

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

public class Test {

	public static void main(String[] args) {
		
		HashSet<String> set = new HashSet<String>();
		set.add("Tom");
		set.add("Jerry");
		set.add("Tom");//不允许存储重复数据
		System.out.println(set.size());

	}
}

最后输出结果是2。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值