HashSet的常用方法(含示例代码)

HashSet集合中不能包含重复元素,并且不会对集合中的元素进行排序,其常用的方法包括:

基本操作:

int size();
boolean isEmpty();
boolean contains(E element);
boolean add(E element);
boolean remove(E element);
Iterator<E> iterator();

批量操作:

boolean containsAll(Collection<E> c);
boolean addAll(Collection<E> c);        //取得并集
boolean removeAll(Collection<E> c);     //删除交集元素
boolean retainAll(Collection<E> c);     //取得交集
void clear();

数组操作:

Object[] toArray();         //将集合转化为Object数组
E[] toArray(new E(c.size));         //将c集合转化为E数组

代码示例如下所示:

注:Collections.singleton(e) 的含义是:生成一个只含有一个元素e的集合

package test;

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

import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils.Collections;

public class Test {

	public static void main(String args[]) {
		int[] a= {6,5,4,3,2,1,1,5,6,7};
		HashSet<Integer> hs=new HashSet<>();       //所有的集合中存储的元素的类型都不会是基本数据类型!!!使用菱形推断创建对象
		for(int i:a) {
			if(!hs.add(i))
				System.out.println(i+"已存在!");       //HashSet中的元素不允许重复!
			hs.add(i);
		}
		/*for(int i=0;i<a.length;i++) {
			if(!hs.add(a[i]))
				System.out.println(a[i]+"已存在!");
			hs.add(a[i]);
		}*/
		if(!hs.isEmpty()) {                 //判断集合是否为空
			System.out.println("hs不为空");
		}
		if(hs.contains(7)) {               //判断集合是否包含元素
			System.out.println("集合hs中包括元素7");
		}
		for(int j : hs) {
			System.out.print(j+"  ");
		}
		System.out.println();
		
		HashSet<Integer> h=new HashSet<>();
		h.add(102);           //添加元素102
		//h.remove(102);        删除元素102
		h.add(103);
		h.add(2);
		
		if(hs.containsAll(h)) {           //判断集合是否包含另一集合的所有元素
			System.out.println("hs集合中包含h集合中的所有元素");
		}
		else {
			System.out.println("hs集合中不包含h集合中的所有元素");
		}
		//hs.addAll(h);            将集合h中的所有元素添加到hs中
		hs.removeAll(h);         //删除hs和h的交集中的元素
		//hs.retainAll(h);         取得hs和h的交集的元素
		//hs.clear();              删除所有hs的元素
		
		Object[] objects=hs.toArray();    //HashSet.toArray()的无参方法
		for(Object o:objects) {
			System.out.print(o+"  ");
		}
		System.out.println();
		
		Integer[] mid=hs.toArray(new Integer[hs.size()]);           //HashSet.toArray()的带参方法
		for(Integer integer:mid) {
			System.out.print(integer+"  ");
		}
		System.out.println();
		
		hs.removeAll(java.util.Collections.singleton(7));     //Collections.singleton(7):生成只有一个元素7的集合
		
		Iterator<Integer> iterator=hs.iterator();
		while(iterator.hasNext()) {
			System.out.print(iterator.next()+"  ");
		}
		System.out.println();
		
	}
}

结果如下:

 在添加复杂类对象时,可以重写hashCode()和equals()方法,防止输入重复

package test;

import java.util.HashSet;

class Student{
	private int id;
	private String name;
	
	public Student() {
	}

	public Student(int id, String name) {
		this.id = id;
		this.name = name;
	}

	@Override
	public int hashCode() {
		return id;
	}

	@Override
	public boolean equals(Object obj) {
		if(obj instanceof Student) {
			Student student=(Student)obj;
			return this.id==student.id;
		}
		else
			return false;
	}
	
}
public class Test {

	public static void main(String args[]) {
		Student s1=new Student(01,"张三");
		Student s2=new Student(01,"李四");
		HashSet<Student> hSet=new HashSet<>();
		hSet.add(s1);
		hSet.add(s2);
		System.out.println("大小为:"+hSet.size());              //add()方法是系统先判断hashCode()是否相等,然后再调用equals()
	}
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HashSetJava集合框架中的一个类,它实现了Set接口,可以用于存储一组没有顺序、不重复的元素。下面介绍HashSet常用方法的使用。 1. add(Object obj):向集合中添加元素。 示例代码: ```java Set<String> set = new HashSet<String>(); set.add("apple"); set.add("banana"); set.add("orange"); System.out.println(set); // 输出 [orange, banana, apple] ``` 2. remove(Object obj):从集合中删除指定元素。 示例代码: ```java Set<String> set = new HashSet<String>(); set.add("apple"); set.add("banana"); set.add("orange"); set.remove("banana"); System.out.println(set); // 输出 [orange, apple] ``` 3. contains(Object obj):判断集合中是否包指定元素。 示例代码: ```java Set<String> set = new HashSet<String>(); set.add("apple"); set.add("banana"); set.add("orange"); System.out.println(set.contains("banana")); // 输出 true System.out.println(set.contains("pear")); // 输出 false ``` 4. size():获取集合中元素的个数。 示例代码: ```java Set<String> set = new HashSet<String>(); set.add("apple"); set.add("banana"); set.add("orange"); System.out.println(set.size()); // 输出 3 ``` 5. clear():清空集合中的所有元素。 示例代码: ```java Set<String> set = new HashSet<String>(); set.add("apple"); set.add("banana"); set.add("orange"); set.clear(); System.out.println(set); // 输出 [] ``` 6. isEmpty():判断集合是否为空。 示例代码: ```java Set<String> set = new HashSet<String>(); System.out.println(set.isEmpty()); // 输出 true set.add("apple"); System.out.println(set.isEmpty()); // 输出 false ``` 以上就是HashSet常用方法的使用,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值