int m; int[] a={2,4,6,8}; Random r=new Random(); m=r.nextInt(); for(int i=0;i<a.length;i++){ if(m!=a[i]){
} else{ m=r.nextInt(); }
} System.out.println(m);
int[] a = {2,4,6,8}; boolean flag = true;do{ Random r =new Random(); m = r.nextInt(); for(int i = 0;i < a.length;i++){ if(a[i] == m){ flag = false; break; } if(flag){ System.out.print(m); } }
}while{flag}
public static void main(String[] args) { int[] a = {2,4,6,8}; Set<Integer> set = new HashSet<Integer>(); for(int i : a) { set.add(i); } Random random = new Random(); Integer i ; while(true) { i = random.nextInt(10); if(!set.contains(i)) { break; } } System.out.println(i); }如果数据量大的话我觉得用这个比较好些,而且可以使用其他类型的数据
int[] a={2,4,6,8};
Random r=new Random();
m=r.nextInt();
for(int i=0;i<a.length;i++){
if(m!=a[i]){
}
else{
m=r.nextInt();
}
}
System.out.println(m);
boolean flag = true;do{
Random r =new Random();
m = r.nextInt();
for(int i = 0;i < a.length;i++){
if(a[i] == m){
flag = false;
break;
}
if(flag){
System.out.print(m);
}
}
}while{flag}
int[] a = {2,4,6,8};
Set<Integer> set = new HashSet<Integer>();
for(int i : a) {
set.add(i);
}
Random random = new Random();
Integer i ;
while(true) {
i = random.nextInt(10);
if(!set.contains(i)) {
break;
}
}
System.out.println(i);
}如果数据量大的话我觉得用这个比较好些,而且可以使用其他类型的数据
另外,如果max的值非常大(远大于数组.size()),还是改成在一个连续数组中将原有数组中的所有数字去掉,然后逐个搜索剩余数字。
这样只需遍历一次int[] a = {2,4,6,8};
int min=a[0];for(int i = 0;i < a.length;i++){
if(a[i]<min){
min=a[i];
}
}
System.out.println(min-1);
int[] a={2,4,6,8};
Random r=new Random();
m=r.nextInt();
for(int i=0;i<a.length;i++){
if(m==a[i]){
m=r.nextInt();
}
}
System.out.println(m);
还有一个和九楼想法一样。