编写一个程序:
•允许用户从键盘输入10个数字;
•删除任何重复的数字(相同的数字);和
•打印前5个数字从最高到最低。
import java.util.Scanner;
import java.util.HashSet;
import java.util.ArrayList;
public class PartB2
{
public static void main(String[] args)
{
/**
* 允许用户从键盘输入10个数字;
*/
Scanner keyboard = new Scanner(System.in);
/**
* 放如集合中去掉重复的元素,最后遍历集合排序
*/
HashSet<Integer> removeRepeat = new HashSet<Integer>();
for(int i = 0; i<10; i++)
{
removeRepeat.add(keyboard.nextInt());
}
/**
* 遍历集合使用选择排序把数字从最高到最低排序。
*/
//max 用于比较,擂台排序
int max = 0;
//ArrayList用于存放排列好的数据
ArrayList<Integer> rangeNumbers = new ArrayList<Integer>();
while(removeRepeat.size() > 0)
{
for(Integer number : removeRepeat)
{
if(number >= max)
{
max = number;
}
}
//从集合中移除掉第一轮最大的数字
removeRepeat.remove(max);
//把每轮最大的数字添加到列表中
rangeNumbers.add(max);
//重置擂台,重新选择最大的数字
max = 0;
}
/**
* 遍历排序好的列表,输出前五个数字
*/
for(int i = 0;i<5;i++)
{
System.out.println(rangeNumbers.get(i));
}
}
}