Vector类java的indexOf方法需要清晰度

时间:2014-06-24 15:25:16

标签: java api vector controls

我有一个Vector对象,其String元素的内容各不相同,Vector对象的大小约为10,000个元素。因此,我不是像疯子那样循环,而是考虑使用indexOf来获得第一次出现。为简单起见:

String curNode = "0";
Vector<String> stringVec = "1", "2", "3", "0", "1", "0", "1";

基于Vector API here,如果我执行以下操作:

int firstOccur = stringVec.indexOf(curNode);

是否可以保证给我firstOccur=3? 另外,我不太确定String是否是一个不可变对象,或者equals方法的任何违反都会在这里发挥作用。

1 个答案:

答案 0 :(得分:1)

  

返回此向量中第一次出现的指定元素的索引,如果此向量不包含该元素,则返回-1。更正式地,返回最低索引i,使得(o == null?get(i)== null:o.equals(get(i))),如果没有这样的索引,则返回-1。

直接来自api。 .indexOf将确保Vector中的对象的第一个实例返回,如果-1中找不到该对象,则Vector将返回.equals()。据我所知,索引在对象上调用==,而不是Strings运算符。因此,{{1}}不应该存在违规行为。