2017-04-03 103 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