Java中的HashSet的常用方法总结

目录

 

一、引言

二、HashSet中的常用方法

1.add(Object obj)方法(详述):

2.size() 方法:

3.remove(Object  obj)方法 : 

4.isEmpty()方法 :

5.clear() 方法: 

6.iterator() 迭代器:

7.contains(Object o)方法:

三、结语


一、引言

在我之前的博客ArrayList的常用方法中我讲到了集合的概念,这里不再赘述,本篇讲的HashSet是Set类的一个子类。

二、HashSet中的常用方法

1.add(Object obj)方法(详述)

add(Object obj)方法用于向Set集合中添加元素,添加成功返回true,否则返回false

先看一段代码:

package runtime;

import java.util.HashSet;//引包

public class Cattle {
	public static void main(String[] args) {
		HashSet<String> set = new HashSet<String>();
		set.add("Tom");		//向set集合中添加元素
		set.add("ABC");
		set.add("Jerry");
                set.add("Tom");	

		for (String name : set) {    //输出set集合中的元素
			System.out.println(name);
		}

	}
}

 运行结果:

那么,如果我们加入了一个重复的元素呢?

改写代码:

package runtime;

import java.util.HashSet;//引包

public class Cattle {
	public static void main(String[] args) {
		HashSet<String> set = new HashSet<String>();
		set.add("Tom");		//向set集合中添加元素
		set.add("ABC");
		set.add("Jerry");
                set.add("Tom");	

		for (String name : set) {    //输出set集合中的元素
			System.out.println(name);
		}

	}
}

观察结果 :

我们不难发现,重复的元素没有被加入到集合中,这就引出了HashSet类的第一个特点:

HashSet集合不允许有重复的元素

这是为什么?

在这里,我简单描述,在之后的博客HashMap 详细讲。

查看add()方法的底层代码:

 发现一个全局变量map,及一个常量PRESENT能够判断出来map调用了一个put方法对我们传入的元素和常量PRESENT进行了操作,查看map,可知map是定义在HashSet类中的一个全局变量,而在HashSet的构造方法中,可以看出是,HashMap创建了一个新对象并赋给了全局变量map,所以在add方法中,实际上是HashMap对象在调用put方法,而在put方法中其实把我们在add方法中传入的元素赋给了HashMap对象中的key,而对于HashMap对象key不能重复(在我下一篇博客会讲到),因此add方法无法添加重复的对象。

 

 

 

 

 

 

2.size() 方法

返回Set集合中的元素个数

package runtime;

import java.util.HashSet;//引包

public class Cattle {
	public static void main(String[] args) {
		HashSet<String> set = new HashSet<String>();
		set.add("Tom");		//向set集合中添加元素
		set.add("ABC");
		set.add("Jerry");
		 
		System.out.println(set.size());

	}
}

输出结果:

3.remove(Object  obj)方法 : 

删除Set集合中的元素,删除成功返回true,否则返回false

package runtime;

import java.util.HashSet;//引包

public class Cattle {
	public static void main(String[] args) {
		HashSet<String> set = new HashSet<String>();
		set.add("Tom");		//向set集合中添加元素
		set.add("ABC");
		set.add("Jerry");

		set.remove("Tom");    //删除“Tom”
		System.out.println(set.size());    //检验是否已被删除
	}
}

输出结果: 

4.isEmpty()方法 :

如果Set不包含元素,则返回 true ,否则返回false

package runtime;

import java.util.HashSet;//引包

public class Cattle {
	public static void main(String[] args) {
		HashSet<String> set = new HashSet<String>();
		set.add("Tom");		//向set集合中添加元素
		set.add("ABC");
		set.add("Jerry");

		System.out.println(set.isEmpty());
	}
}

输出结果: 

5.clear() 方法: 

移除此Set中的所有元素

package runtime;

import java.util.HashSet;//引包

public class Cattle {
	public static void main(String[] args) {
		HashSet<String> set = new HashSet<String>();
		set.add("Tom");		//向set集合中添加元素
		set.add("ABC");
		set.add("Jerry");
		
		set.clear();
		System.out.println(set.isEmpty());
		
	}
}

输出结果: 

6.iterator() 迭代器:

返回在此Set中的元素上进行迭代的迭代器

package runtime;

import java.util.HashSet;//引包
import java.util.Iterator;

public class Cattle {
	public static void main(String[] args) {
		HashSet<String> set = new HashSet<String>();
		set.add("Tom"); // 向set集合中添加元素
		set.add("ABC");
		set.add("Jerry");

		Iterator<String> iterator = set.iterator();
		while (iterator.hasNext()) {
			System.out.println(iterator.next());
		}

	}
}

观察结果:

 这里体现了HashSet对象的另一个特点:“它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变”

7.contains(Object o)方法

如果Set包含指定的元素,则返回 true,否则返回false

package runtime;

import java.util.HashSet;//引包

public class Cattle {
	public static void main(String[] args) {
		HashSet<String> set = new HashSet<String>();
		set.add("Tom"); // 向set集合中添加元素
		set.add("ABC");
		set.add("Jerry");

		boolean flag = set.contains("Tom");
		System.out.println(flag);
	}
}

输出结果:

三、结语

HashSet的大部分常用方法与ArrayList类似,所以本篇中一些示例不再用文字赘述。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值