java向量声明语法
我对Java还不熟悉,我一直在思考向量声明之间的语法差异
Vector<Object> v = new Vector<>(SIZE);
这个呢
Vector v = new Vector(SIZE, GROWABLESIZE);
我知道这两种类型都将创建一个新的对象类型向量(可转换为其他类型),并可以存储多达多个大小的对象,但它们在内部/功能上有何区别
我在为一个大学项目使用JTable时学习了第一个语法,后来的语法在课堂上(和书本上)教授。我无法区分这两者
# 1 楼答案
运行时的行为差异在于,第二个为
capacityIncrement
指定了一个值:编译时的不同之处在于,第二个使用的是原始类型。这意味着编译器会发出警告
即使您想将
Object
放在这个向量中(这通常是一种糟糕的做法),声明一个Vector<Object>
的泛型类型也更清晰,并显示出您的意图因此:
或者:
你更好
但通常情况下,您不想使用
Vector
这是一个线程安全的遗留类,它仍然主要出于追溯兼容性的原因而存在静态
Collections.synchronizedList()
方法通常是使List
实例线程安全的更好/更灵活的方法