HJ3 题解 | #明明的随机数#
明明的随机数
http://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
思路:将所有数据逐组处理,即输入一组便输出改组处理结果,然后输入下一组。处理时用TreeSet可以实现去重加排序。
因为TreeSet不支持int类型,故先将int数组转化为Integer数组,再转化为List,最后转化为TreeSet。
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
while(in.hasNextInt()){
int n = in.nextInt();
int[] arr = new int[n];
for(int i = 0; i < n; i++){
int x = in.nextInt();
arr[i] = x;
}
Integer[] integerArr = Arrays.stream(arr).boxed().toArray(Integer[]::new);
TreeSet<Integer> tset = new TreeSet<Integer>(Arrays.asList(integerArr));
Iterator it = tset.iterator();
while(it.hasNext())
System.out.println(it.next());
}
}
}
关键代码:
1.Integer[] integerArr = Arrays.stream(arr).boxed().toArray(Integer[]::new);
将int数组转化为Integer数组
2.TreeSet tset = new TreeSet(Arrays.asList(integerArr));
将Interger数组转化为List,再转化为TreeSet,TreeSet可以自动去重加排序。
3.Iterator it = tset.iterator();
产生TreeSet的迭代器,输出时用System.out.println(it.next());