综合练习3:给随机数组排序(默认升序排序)
随机数组就是在指定长度的数组中,用随机数字为每个元素赋值,这常用于需要不确定数值的环境,如拼图游戏需要随机数组来打乱图片排序。可是同时也存在问题,就是随机数的重复问题,这个问题也常常被忽略,请利用TreeSet集合来实现不重复的数列,并自动完成元素的排序,然后生成数组。效果如图所示。
方法一、使用for循环输入元素,再用迭代器+while循环语句输出元素
/*综合练习3:给随机数组排序(默认升序排序)
* 随机数组就是在指定长度的数组中,用随机数字为每个元素赋值,
* 这常用于需要不确定数值的环境,如拼图游戏需要随机数组来打乱图片排序。
* 可是同时也存在问题,就是随机数的重复问题,这个问题也常常被忽略,
* 请利用TreeSet集合来实现不重复的数列,并自动完成元素的排序,然后生成
* 数组。效果如图所示。
* */
package jhl;
import java.util.TreeSet;
import java.util.Iterator;
import java.util.Random;
public class Zhlx3 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println("生成无重复元素且升序的随机数组如下:");
TreeSet<Integer> set = new TreeSet<>(); // 创建TreeSet集合对象
Random r = new Random(); // 创建随机数对象
for(int i = 0;i < 10;i++) {
set.add(r.nextInt(100));
}
Iterator<Integer> it = set.iterator();
while(it.hasNext()) {
System.out.print(it.next() + " ");
}
}
}
方法二、while语句添加元素,创建数组,将元素放置在数组中,foreach语句遍历输出元素
/*while添加元素*/
package jhl;
import java.util.TreeSet;
import java.util.Random;
public class Zhlx32 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println("生成无重复元素且升序的随机数组如下:");
Random r = new Random();
TreeSet<Integer> set = new TreeSet<>();
// 使用while循环添加
int count = 0;
while(count < 10) {
boolean succeed = set.add(r.nextInt(100));
if(succeed) {
count++;
}
}
// 创建一维数组,放置集合中的内容
int size = set.size();
Integer[] array = new Integer[size]; // 初始化数组
Integer[] add = set.toArray(array); // 获取集合中的数组
for(int value:array) { // foreach语句遍历数组array
System.out.print(value + " ");
}
}
}
方法三、创建Object型集合,后续for输出,可以转换元素类型,toString()转换为String类型,foreach语句遍历输出
package jhl;
import java.util.Random;
import java.util.TreeSet;
public class Zhlx33 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println("生成无重复元素且升序的随机数组如下:");
Random r = new Random();
TreeSet<Integer> set = new TreeSet<>();
for(int i = 0;i < 10;i++){ // 添加元素
set.add(r.nextInt(100));
}
//
Object[] strArray = set.toArray();
for(Object a:strArray){
String str = a.toString(); // 转换元素类型为String
System.out.print(str+" "); // 获取对象的类型,输出对象的名称
}
}
}