欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

蓝桥杯-Set

最编程 2024-03-10 14:50:24
...

目录

HashSet类常用方法

1 add(Object obj)方法

2 size() 方法

3 remove(Object obj)方法

4 contains()方法

5 clear() 方法

例题实战


set

 一个不允许出现重复的元素,并且无序的集合,主要有HashSet实现类。

在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现。

注重独一无二的性质,该体系集合可以知道某物是否是存在与集合中

用于存储无序(存入和去除的顺序不一定相同)元素,值不能重复。

特点:

可以用来去重     元素无序

HashSet类常用方法

1 add(Object obj)方法

用于向Set集合中添加元素,添加成功返回true,否则返回false。

创建HashSet对象set,用于保存字符串元素:

Set<String> set=new HashSet<>();

也可以用来保存整数元素:Set<Integer> set=new HashSet<>();


package AAA;
import java.util.*;

public class Main1 {
	public static void main(String args[]) {
		Set<Integer> set=new HashSet<>();
		boolean a=set.add(1);
		boolean b=set.add(1);
		System.out.print(a+" "+b);
	}
}

结果为true false。说明set中不存在重复元素

2 size() 方法

返回Set集合中的元素个数


package AAA;
import java.util.*;

public class Main1 {
	public static void main(String args[]) {
		Set<Integer> set=new HashSet<>();
		set.add(1);
		set.add(1);
		System.out.println("第一次添加集合中有:"+set.size()+"个元素");
		set.add(2);
		System.out.println("此时的集合中有:"+set.size()+"个元素");
		
	}
}

3 remove(Object obj)方法

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

4 contains()方法

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

5 clear() 方法

移除此Set 中的所有元素

例题实战

题目:明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(1<=N<=100),对于其中重复的数字只能保留一个,其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些书从小到大排列,按照排列好的顺序去找同学做调查。请你协作明明完成“去重”与“排序”的工作

输入

10

20 40 32 67 40 20 89 300 400 15

输出

8

15 20 32 40 67 89 300 400

package AAA;

import java.sql.Array;
import java.util.*;

public class Main2 {
	public static void main(String args[]) {
		//System.out.println("请输入您所需要计算机随机产生的整数个数:");
		Scanner scanner =new Scanner(System.in); 
		int a=scanner.nextInt();//确定数组长度
		
		int c[]=new int[a];
		for(int i=0;i<a;i++) {
			c[i]=scanner.nextInt();
			
		}//接受数据
		
		Set<Integer> set=new HashSet<>();
		List<Integer> list=new ArrayList();
		for(int i=0;i<a;i++) {
			if(!set.contains(c[i])) {
					set.add(c[i]);
					list.add(c[i]);//虽然set有去重效果,但是list没有,所以需要条件
			}//去重
		}
		System.out.println("去重后的结果:");
		for(int x:set) {
			System.out.print(x+" ");		
		}
		System.out.println();
		System.out.println("去重后的整数个数:");
		System.out.println(set.size());
		Collections.sort(list);
		System.out.println("排序后的结果:");
		for(int x:list) {
			System.out.print(x+" ");		
		}
	}
}