在Java中采用随机百分比的向量

时间:2015-01-03 10:00:32

标签: java vector

我正在使用Java而我正在使用向量'set'来存储数据

当我读取每一行并将其存储在数组值[]中时,这是从文本文件创建的。然后我有一个向量'set',并且对于每一行,我将值[]添加到向量'set',因此在读取文本文件中的所有数据之后,set如上所示。

然后用户可以选择输入他想要的数据量,例如,如果他输入50,那么将使用一半的向量(前7行):

public void pro(int percentage)
{
    int noOfEx = percentage*set.size()/100; 
    root.keptEx = new Vector(set.subList(0, noOfEx));
}

但是,我希望这些线条是随机拍摄的,而不是相继拍摄的,但我无法弄清楚如何随机拍摄。还有一种方法可以打印出矢量的值吗?因为

System.out.println(keptEx) 

显示奇怪的符号而非实际内容。

1 个答案:

答案 0 :(得分:0)

随机播放行列表:

Collections.shuffle(list);

然后获取洗牌列表的前N行。请注意,调用set实际上是一个列表并不是一个好主意。另请注意,自Java 2以来不再使用Vector,而且我们使用的是Java 8.请使用ArrayList。并使用泛型类型,而不是原始类型。这些存在于Java 5之后。

打印列表的最简单方法是使其包含列表而不是数组(即您将使用List<List<Integer>>而不是List<int[]>(假设您拥有的是什么)如果你想继续使用数组,那么你必须遍历列表中的每个元素:

for (int[] row : list) {
    System.out.println(Arrays.toString(row));
}