我对使用String数组作为Vector对象中的元素感兴趣。数组总是长度为2.这种数据结构有更好的方法吗?使用Vector的原因是因为动态调整大小,即元素数量不同,我想使用Vector的add
和trimToSize
方法。
谢谢!
答案 0 :(得分:1)
改为使用ArrayList
和自定义对象。
public class MyStrings {
private String string1;
private String string2;
public MyStrings(String string1, String string2) {
this.string1 = string1;
this.string2 = string2;
}
public String getString1() {
return string1;
}
public String getString2() {
return string2;
}
}
然后使用它:
List<MyStrings> list = new ArrayList<MyStrings>();
list.add(new MyString("apple", "orange");
// To iterate:
for (MyStrings myStrings : list) {
System.out.println(myStrings.getString1());
System.out.println(myStrings.getString2());
}
由于额外的同步逻辑或多或少无用, Vector
在Java中不再被认为是一个好的动态数组,因此它只会增加不必要的开销。 ArrayList
是首选动态数组。您还可以使用LinkedList
,这是一个双向链接列表。
当然,您还应该使用更好的命名约定来描述值实际意味着什么,而不是我在我的示例中使用的名称。
答案 1 :(得分:0)
Apache commons提供了一个很好的Pair class来存储两个值。使用大小为2的数组看起来有点黑客。