Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.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 - Fatal编程技术网

在java中,什么时候使用向量比使用数组更好,反之亦然?

在java中,什么时候使用向量比使用数组更好,反之亦然?,java,Java,在java中,什么时候使用向量比使用数组更好,反之亦然?为什么呢?AVector(或List)当您事先不知道要插入多少元素时 一个数组,当你完全知道向量的整个生命周期中元素的最大数量时 由于在使用列表或向量(任何相关集合)时没有高性能惩罚,因此我总是选择使用它们。他们的灵活性非常重要,不容忽视 现在我只在绝对需要的时候才使用数组。示例:当使用需要它们的API时。首先使用ArrayList比Vector实现更快(但不是线程安全的) 当您事先知道长度时,数组非常方便,并且不会有太大的变化(或者根本不

在java中,什么时候使用向量比使用数组更好,反之亦然?为什么呢?

A
Vector
(或
List
)当您事先不知道要插入多少元素时

一个
数组
,当你完全知道向量的整个生命周期中元素的最大数量时

由于在使用
列表
向量
(任何相关集合)时没有高性能惩罚,因此我总是选择使用它们。他们的灵活性非常重要,不容忽视


现在我只在绝对需要的时候才使用
数组
。示例:当使用需要它们的API时。

首先使用ArrayList比Vector实现更快(但不是线程安全的)


当您事先知道长度时,数组非常方便,并且不会有太大的变化(或者根本不会变化)。

向量:除非API需要,否则永远不要使用数组,因为它是一个类,而不是一个接口

列表
:这应该是默认的类似数组的集合。它是一个界面,所以任何东西都可以是
列表
,如果需要的话。(对于各种功能集,有许多
List
实现,例如
ArrayList
LinkedList
CopyOnWriteArrayList
ImmutableList

Vector
是线程安全的,但是
Collections.synchronizedList()
包装也是线程安全的


数组:很少,如果API需要的话。数组的另一个主要优点是,当您需要一个固定长度的原语数组时,所需的内存空间相当紧凑,而
列表
需要将整数装箱到
整数
对象中。

声明方法时,请使用
列表

不要使用
Vector
,它是JDK的早期部分,经过改装后可用于
集合

如果有一种对性能非常敏感的算法,则私有数组成员可能会有所帮助。如果需要返回其内容或将其传递给方法,通常最好在其周围构造一个对象,可能像
array.asList(theprivaterary)
一样简单。对于线程安全列表:
Collections.synchronizedList(Arrays.asList(thePrivateArray))
。为了防止修改数组内容,我通常使用
Collections.unmodifiableList(Arrays.asList(privatearray))

可能的重复项