Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对Java来说有点陌生,而且一直坚持使用集合。这里我';我正在尝试生成没有重复的随机数_Java_Arraylist - Fatal编程技术网

对Java来说有点陌生,而且一直坚持使用集合。这里我';我正在尝试生成没有重复的随机数

对Java来说有点陌生,而且一直坚持使用集合。这里我';我正在尝试生成没有重复的随机数,java,arraylist,Java,Arraylist,这是我的片段。记录[i]是一个具有两个变量id和编号的对象。我得到的错误类型是意外的:required变量;发现:价值 int Shuffle = 0; List<Integer> randomID = new ArrayList<Integer>(); List<Integer> randomNumber = new ArrayList<Integer>(); for (int i=0;i<100 ;i++) { randomID

这是我的片段。记录[i]是一个具有两个变量id和编号的对象。我得到的错误类型是意外的:required变量;发现:价值

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;
    }
}
int Shuffle=0;
List randomID=new ArrayList();
List randomNumber=新建ArrayList();

for(int i=0;i您对randomID.indexOf(record[i].ID)的调用返回一些值。您已将其放在等号的左侧,因此编译器正在寻找可以赋值的对象。它不能将值赋值给值,它必须有一个变量

我想您可能想为数组中该元素的ID分配null:
record[I].ID=null;

或者您可能需要索引到randomID:

int index = randomID.indexOf(record[i].ID);
randomID.set(index, null);
但你最终得到的列表中有一堆空值。这真的是你想要的吗


无论如何,您的问题是关于错误的。如果您有不同的问题,请在不同的帖子中提问。

对于java集合,有几种类型的存储。 列表集合允许重复条目。 集合集合不允许重复

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));
}
Set Set=new HashSet();//假设需要整数
int randomNumberCount=10
while(set.size()

将条目添加到已存在的集合中只会替换它。

您确定ID应该在所有大写字母中吗?您能显示记录类吗?这将帮助我找到问题。我看不到此处生成的任何随机数。请使用
random.nextInt(100)
这会给你一个介于0-100之间的随机数。@Eranda他正在使用shuffle方法使ID随机。类记录{public int ID;private int accountNumber,balance;private String name,password;…}我不认为是随机数(随机数)在他所指的被抛出错误的部分中使用。理解我从上一条语句中获取索引并试图将其赋值为null…我的坏哈哈还有一个问题…如果我使用集合,并且如果我将两个值更改为null,第二个值会被忽略吗?这实际上比一个包含大量null的列表要好,对吗?如果如果不想删除找到的元素,只需使用remove并完成即可。您可以从集合中删除元素;只需确保不在循环中重复该集合即可(这里您没有这样做——您正在迭代一组数字,然后索引到集合中,这可以从集合中删除)。