1、循环去重(给定的数据中可能有重复)
(1)准备数据,随机生成10个0-20以内的随机数
(2)循环遍历随机生成的数组,发现数组内数字相同,i--并且退出循环。
public static void main(String[] args) {
int a[] = new int[10];
Random random = new Random();
for (int i = 0; i < a.length; i++) {
int RND = random.nextInt(20); //生成10个20以内的随机数
a[i] = RND;
for (int j = 0; j < i; j++) {
if (a[i] == a[j]) { //判断a[i]和a[j]是否相同,如果相同,将i值退回
i--;
break;
}
}
}
System.out.println(Arrays.toString(a));
}
2、删除去重(给定的数据无重复,将数据中内容取到其他数组中防止重复)
(1)准备数据,随机生成10个0-20以内的随机数
(2)随机取其中的一个数字,将取出来的数字从数组中删除
public static void main(String[] args) {
int a[] = new int[10]; //准备a数组,长度为10
for (int i = 0; i < a.length; i++) {
a[i] = i+1;
}
int b[] = new int[5]; //准备b数组,从a数组中取5个值,且不能相等
Random random = new Random();
for (int i = 0; i < b.length; i++) {
int index = random.nextInt(a.length);
b[i] = a[index]; //将a数组中下标为index的值赋给b
a[index] = a[a.length-1]; //将a数组最后一个值赋给a下标为index的值
a = Arrays.copyOf(a, a.length-1); //将a数组长度-1
}
System.out.println(Arrays.toString(b));
}