我正在制作一个10个整数长的数组,因此每个地方0-9包含一个不同的整数0-9。
我无法弄清楚如何检查数组是否已包含某个数字,如果是,则重新生成一个新数字。
到目前为止,我有:
for (int i = 0; i < perm.length; i++)
{
int num = (int) (Math.random() * 9);
int []
perm[i] = num;
}
答案 0 :(得分:3)
Arrays.asList(perm).contains(num)
来自How can I test if an array contains a certain value?
for (int i = 0; i < perm.length; i++)
这不足以像这样循环,如果发生碰撞,一些插槽就不会被初始化。
总体,对于此任务,您最好按顺序使用值初始化数组,然后使用随机排列索引shuffle
答案 1 :(得分:0)
这是一个完整的答案
int[] array = {3,9, 6, 5, 5, 5, 9, 10, 6, 9,9};
SortedSet<Integer> s = new TreeSet();
int numberToCheck=61;
for (int i = 0; i < array.length; i++) {
s.add(array[i]);
}
System.out.println("Number contains:"+!(s.add(numberToCheck)));
System.out.println("Sorted list:");
System.out.print(s);
答案 2 :(得分:0)
添加字符串和整数以检查是否存在。
public class existOrNotInArray {
public static void elementExistOrNot() {
// To Check Character exist or not
String array[] = { "AB", "CD", "EF" };
ArrayList arrayList = new ArrayList<>();
String stringToCheck = "AB";
for (int i = 0; i < array.length; i++) {
arrayList.add(array[i]);
}
System.out.println("Character exist : " + arrayList.contains(stringToCheck));
// To Check number exit or not
int arrayNum[] = { 1, 2, 3, 4 }; // integer array
int numberToCheck = 5;
for (int i = 0; i < arrayNum.length; i++) {
arrayList.add(arrayNum[i]);
}
System.out.println("Number exist :" + arrayList.contains(numberToCheck));
}
public static void main(String[] args) {
elementExistOrNot();
}
}