目录

 

一、引言

二、HashSet中的常用方法

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

2.size() 方法:

3.remove(Object  obj)方法 : 

4.isEmpty()方法 :

5.clear() 方法: 

6.iterator() 迭代器:

7.contains(Object o)方法:

三、结语


一、引言

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

collection java 中set的方法 java set常用方法_System

二、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);
		}

	}
}

 运行结果:

collection java 中set的方法 java set常用方法_常用方法_02

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

改写代码:

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

	}
}

观察结果 :

collection java 中set的方法 java set常用方法_常用方法_03

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

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

这是为什么?

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

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

collection java 中set的方法 java set常用方法_java_04

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

 

 

collection java 中set的方法 java set常用方法_java_05

 

collection java 中set的方法 java set常用方法_System_06

 

collection java 中set的方法 java set常用方法_java_07

 

 

collection java 中set的方法 java set常用方法_java_08

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

	}
}

输出结果:

collection java 中set的方法 java set常用方法_java_09

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());    //检验是否已被删除
	}
}

输出结果: 

collection java 中set的方法 java set常用方法_System_10

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

输出结果: 

collection java 中set的方法 java set常用方法_System_11

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

输出结果: 

collection java 中set的方法 java set常用方法_System_12

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

	}
}

观察结果:

collection java 中set的方法 java set常用方法_java_13

“它不保证 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);
	}
}

输出结果:

collection java 中set的方法 java set常用方法_java_14

三、结语

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