这是我的片段。 record [i]是一个具有2个变量id和number的对象。我得到错误意外类型:必需变量;发现:价值。
int Shuffle = 0;
List<Integer> randomID = new ArrayList<Integer>();
List<Integer> randomNumber = new ArrayList<Integer>();
for (int i=0;i<100 ;i++) {
randomID.add(new Integer(i));
}
Collections.shuffle(randomID);
for (int i=0;i<100000;i++) {
randomNumber.add(new Integer(i));
}
Collections.shuffle(randomNumber);
for (int i=0;i<length;i++) {
if (randomID.contains(record[i].ID)) {
randomID.indexOf(record[i].ID)=null; //ERROR : REQUIRED VARIABLE FOUND VALUE
}
}
for (int i=0;i<length;i++) {
if (randomNumber.contains(record[i].getNumber())) {
randomNumber.indexOf(record[i].getNumber())=null;
}
}
答案 0 :(得分:2)
您对randomID.indexOf(record [i] .ID)的调用会返回一些值。你把它放在等号的左边,所以编译器正在寻找可以分配值的东西。它不能为值赋值,它必须有一个变量。
我想你可能意味着将null赋给数组元素的ID:record[i].ID = null;
或者你可能需要索引到randomID:
int index = randomID.indexOf(record[i].ID);
randomID.set(index, null);
但最终会得到一个包含大量空值的列表。这真的是你想要的吗?
无论如何,你的问题是关于错误的。如果您有其他问题,请在其他帖子中提问。
答案 1 :(得分:0)
对于java集合,有几种类型的存储。 List集合允许重复条目。 Set集合不允许重复。
Set set = new HashSet<Integer>(); //assuming you want Integer
int randomNumberCount = 10
while(set.size() < randomNumberCount) {
int temp = Math.random() * 100;
set.add(new Integer(temp));
}
将条目添加到已存在的集合中只会替换它。