一、明明的随机数
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
思路:循环获得输入的整数,再循环添加到Treeset 集合里面。遍历treeSet集合便可。TreeSet可以去重 默认升序。
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while (sc.hasNext()){
int a=sc.nextInt();
TreeSet <Integer> set=new TreeSet<Integer>();
for(int i=0;i<a;i++){
int b=sc.nextInt();
set.add(b);
}
for(Integer i :set){
System.out.println(i);
}
}
}
}
二、选择(快速排序)、冒泡排序:
取出整型数据中存在指定整数的数据,并按升序排列 返回。
样例输入:12345,654,38877,3,346
3
输出:3 ,346,12345,38877
思路:拿到输入的字符串,用逗号分割。用字符串包含的方法,把包含有的放入新建的集合中。新建整形数组,长度为集合的长度。从集合中取出元素在放入数组中。再用Arrays.sort(a)快速排序的方法对整型数组排序。在遍历数组。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
String s=scan.nextLine();
String []s1=s.split(",");
String s2=scan.nextLine();
ArrayList<String> list=new ArrayList<String>();
for(int i=0;i<s1.length;i++){
if(s1[i].contains(s2)){
list.add(s1[i]);
}
}
int [] a=new int[list.size()];
for(int n=0;n<list.size();n++){
a[n]= Integer.parseInt(list.get(n));
}
//Arrays.sort(a);//选择排序,快速排序
//冒泡排序
for(int i=0;i<a.length-1;i++){
for(int j=i+1;j<a.length;j++){
if(a[i]<a[j]){
int temp =a[i];
a[i]=a[j];
a[j]=temp;
}
}
}