Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中创建向量的一部分_Java_Arrays_Vector - Fatal编程技术网

在Java中创建向量的一部分

在Java中创建向量的一部分,java,arrays,vector,Java,Arrays,Vector,我有一个向量myvector;大小为0-400,我希望我的方法返回一个位置为0-100的新向量(如果存在)。但我的代码是: return (Vector< MyClass >) myvector.sublist( 0, Math.min(myvector.size,100) ); 我做错了什么?我怎样才能修好它 提前感谢,因为子列表返回的是列表而不是向量。子列表返回的是列表。无法将列表转换为向量 通常有人建议,在可能的情况下,您应该使用接口类型的引用,而不是具体类型的引用。遵循此建

我有一个向量myvector;大小为0-400,我希望我的方法返回一个位置为0-100的新向量(如果存在)。但我的代码是:

return (Vector< MyClass >) myvector.sublist( 0, Math.min(myvector.size,100) );
我做错了什么?我怎样才能修好它


提前感谢,因为子列表返回的是列表而不是向量。子列表返回的是列表。无法将列表转换为向量

通常有人建议,在可能的情况下,您应该使用接口类型的引用,而不是具体类型的引用。遵循此建议可避免此类难题。

的返回类型不一定是类向量,而是列表的实现。您可以通过以下方式解决此问题:

return new Vector<MyClass>(myvector.subList(0, Math.min(myvector.size(), 100)));

编辑:感谢Stjepan和Steve注意到不必要的条件。

子列表将返回一个列表。如果要执行此操作,必须执行以下操作:

new Vector(myList);

为什么使用if/else而不只是返回新的vectoryvector.subList0,Math.minmyvector.size,100@Stjepan Rajko最初在我写它的时候,我认为myvector.size==0的情况会产生一个错误——但仔细看,事实证明并非如此。我想我可以以可读性为借口,但那会有点单薄-大小永远不会小于0,因此返回新的vectoryvector.subList0,Math.minmyvector.Size,100;永远不会被处决的。嗯。。。首先,myvector.sublist应该是myvector.sublist,这样代码甚至不应该编译。
new Vector(myList);