小编Ale*_*lon的帖子

在Java中生成一组唯一的随机数

我想在0-500范围内创建10个随机数.但问题是我希望这些数字是唯一的.对于2个随机数,我可以创建如下内容:

int randomItem1 = r.nextInt(500);
int randomItem2 = r.nextInt(500);
while(randomItem1==randomItem2){
    randomItem1=randomItem();
    randomItem2=randomItem();
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做10,我认为它会堆叠.而且我这样说是因为我正在尝试创建一个巨大的算法,它试图进行连续的评估,我想要不断地获取10个随机和唯一的数字.我不知道该怎么办.任何想法或建议?

java

6
推荐指数
3
解决办法
2万
查看次数

java中的2d arraylists(为什么最终的集合相同)

我有2D ArrayList.将ArrayList包含10 ArrayList秒.我尝试了以下代码:

这是主要的2D ArrayList.在主要内部ArrayList有10 ArrayList秒:

 ArrayList<ArrayList<Items>> arrayList = new ArrayList<ArrayList<Items>>();
Run Code Online (Sandbox Code Playgroud)

在这里,我尝试创建其中一个的副本ArrayList(selectedRow只是一个数字,表示ArrayList我得到的)

ArrayList<Items> newList = new ArrayList<Items>(arrayList.get(selectedRow));
Run Code Online (Sandbox Code Playgroud)

之后我创建另一个ArrayList:

   ArrayList<Items> changeList = new ArrayList<Items>(it.returnTheNewArrayList(newList,randomItem));
Run Code Online (Sandbox Code Playgroud)

然后在另一个类中我创建了这个方法.此方法的目的是更改其中一个对象的属性.

public  ArrayList<Items> returnTheNewArrayList(ArrayList<Items> a,int item){

  int randomBin = r.nextInt(50);

    for(Items i:a){

        if(item==i.itemIds()){

            while(randomBin==i.bins()){
                randomBin = r.nextInt(50);

            }
            i.setBin(randomBin);

        }

    }
return a;

}
Run Code Online (Sandbox Code Playgroud)

最后,我在2D ArrayList中设置了新的ArrayList

arrayList.set(whichList, changeList);
Run Code Online (Sandbox Code Playgroud)

这是程序.我发现,当我运行这个程序,无论是newListchangeList是相同的.在这两个中ArrayLists我都保存了我在方法中所做的更改returnTheNewArrayList(我通过调试发现了它).但我想只改变一个(changeList).

我做错了什么?

java

2
推荐指数
1
解决办法
470
查看次数

标签 统计

java ×2