2017-04-03 105 views
0

嗨我正在寫一個java程序,在這個程序中我需要讀取添加到Vector中的對象,並且不應該有重複。實際上,我想通過Math.random()* Vector.size()獲得一個隨機數,並且不要重複,將隨機數保存在一個數組中,或者下次不要再讀取它,但是要猜測必須有方法或一些用於此目的...... 我會爲任何性反應的感恩從Vector中讀取隨機對象java

+1

請發佈您嘗試過的東西。我們不習慣於爲您編寫代碼。 – Michael

+1

另外,Vector現在是Java中過時的集合,除非必須,否則不應該使用它。 'ArrayList'是最好的。 – Michael

+0

我不想讓你給我一個代碼,但想知道是否有一個類或一些方法來讀取矢量中的隨機元素而不重複 – Sarasr

回答

2

您可以生成從1序列,直到向量的大小,將它洗,然後使用這些值讀取向量元素:

Vector v; 
List<Integer> values = new ArrayList<>(); 
for (int i=0; i < v.size(); ++i) { 
    values.add(i); 
} 
Collections.shuffle(values); 

// now read the value in the vector using this random sequence 
for (int i=0; i < values.size(); ++i) { 
    System.out.println(vector.get(values.get(i))); 
} 
0

您可以簡單地從您的向量中讀取值時刪除一個值。

+0

是的,但我需要過程後的元素: ):( – Sarasr

+0

使用你的矢量的副本:) – Lennier

+0

嗯,它應該通過vector2 =(Vector)vector 1.clone()來完成嗎? – Sarasr