私はJavaにかなり慣れていないので、重複を含まない長さ'number'のランダムな(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();
これにより、正しい長さの配列が出力されますが、すべての要素は同じです。誰かが助けを提供できますか?
ありがとう