我对Java相当陌生,我想生成一个长度为“数字”的随机(x,y)坐标数组,其中不包含重复项。x 或 y 值可以重复,但不能有重复的 (x,y) 坐标。输出不必是点,只是一些保存坐标的 x,y 值的方式。
我可以生成一个随机点数组,并尝试使用 Set 来确保没有重复值,但遇到了问题。我尝试使用条件“while (set.size)”和不允许重复的“add”方法来创建包含唯一点的正确大小的输出。
这是代码:
Set<Point> set = new HashSet<Point>();
Random position = new Random();
Point test=new Point();
do{
test.x=position.nextInt(xx);
test.y=position.nextInt(yy);
//xx and yy are the random number limits called from another part of the code
set.add(test);
}
while (set.size()<number);
List<Object> list = new ArrayList<Object>(set);
Object[] coord = list.toArray();
这会输出一个长度正确的数组,但每个元素都是相同的。任何人都可以提供任何帮助吗?
谢谢