我對Java很新,我想生成一個長度爲「number」的隨機(x,y)座標數組,其中不包含重複項。 x或y值可以重複,但不得有重複的(x,y)座標。輸出不一定是點,只是一些保存座標x,y值的方法。在java中生成一個隨機點數組沒有重複
我可以生成一個隨機點數組,並嘗試使用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();
此輸出正確的長度的陣列,但是每個元件是相同的。任何人都可以提供幫助嗎?
謝謝
非常感謝,這完美的作品。 – user1337290 2012-04-16 22:04:02