在Java中随机抽取向量的百分比

在Java中随机抽取向量的百分比,java,vector,Java,Vector,我使用Java和向量“set”来存储数据 这是在我读取每一行并将其存储在数组values[]中时从文本文件创建的。然后我有一个向量“set”,对于每一行,我向向量“set”添加值[],这样在读取文本文件中的所有数据后,set看起来如上图所示 然后,用户可以选择输入他想要的数据量,例如,如果他输入50,则向量的一半(前7行)将通过使用: public void pro(int percentage) { int noOfEx = percentage*set.size()/100;

我使用Java和向量“set”来存储数据

这是在我读取每一行并将其存储在数组values[]中时从文本文件创建的。然后我有一个向量“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) 

显示奇怪的符号,而不是实际的内容。

无序排列行列表:

Collections.shuffle(list);
然后取洗牌列表的前N行。请注意,调用实际上是列表的
set
并不是一个好主意。还要注意的是,自从Java2之后,Vector就不应该再使用了,我们现在使用的是Java8。改用ArrayList。并使用泛型类型,而不是原始类型。这些都是从Java5开始存在的

打印列表的最简单方法是使其包含列表而不是数组(即,您将使用
列表而不是
列表(假设您拥有该列表)。如果您想继续使用数组,则必须循环使用列表中的每个元素:

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

这是一个向量,而不是一个列表。我现在有很多代码可以将所有内容更改为arraylist:(在“所有实现的接口”下编写的内容)这里:?这就是为什么你应该总是这样。你能给我一个向量pls的等价物吗?因为我只需要代码来分析结果,所以实现不一定很重要。请再次阅读我的评论,并再次阅读javadoc。向量是一个列表。我的解决方案与向量配合得很好。