Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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,我想找出simplevector对象findout fullVectorData对象,是否?为什么这里包含的方法没有给出所需的结果?您将添加到向量数组对象!因此,您的向量不包含字符串它包含3个字符串数组。 你需要使用 public static void main(String[] args) { // TODO Auto-generated method stub Vector fullVector = new Vector(); Vector

我想找出simplevector对象findout fullVectorData对象,是否?为什么这里包含的方法没有给出所需的结果?

您将添加到
向量
数组对象!因此,您的
向量
不包含
字符串
它包含3个字符串数组。 你需要使用

public static void main(String[] args) {

        // TODO Auto-generated method stub
        Vector fullVector = new Vector();
        Vector simpleVector = new Vector();

        String[] fullVectorData = new String[2];
        fullVectorData[0] = "MAP0003";
        fullVectorData[1] = ",";
        fullVector.add(fullVectorData);

        String[] fullVectorData1 = new String[2];
        fullVectorData1[0] = "MAP0004";
        fullVectorData1[1] = ",";
        fullVector.add(fullVectorData1);

        String[] simpleData = new String[2];
        simpleData[0] = "MAP0003";
        simpleData[1] = ",";
        simpleVector.add(simpleData);

        int i = 0 ;

        for (Iterator iterator = fullVector.iterator(); iterator.hasNext();) {
            String[] object = (String[]) iterator.next();
            System.out.println(object);
            if(!simpleVector.contains(object)){
                System.out.println("test"+ i);
                i++;
            }

        }
    }

您想测试向量中是否存在特定字符串,但当前正在测试向量中是否存在
string[]数组。改变

 fullVector.addAll(Arrays.asList(fullVectorData1));

for(int x=0;x

另外,不需要将数组对象添加到向量中,您需要将字符串条目添加到向量中

您的向量中有一个字符串数组,因此,您需要使用
array.equals
来比较两个数组的相等性,因为它包含在向量中的每个元素上进行内部迭代,并检查两个数组元素的引用,即在您的示例中的字符串数组。所以你可以这样做:

for(int x =0; x < object.length; x++){
if(!simpleVector.contains(object[x])){
                System.out.println("test"+ i);
                i++;
            }
}
私有静态布尔doesContains(向量simpleVector,字符串[]对象){
布尔doesContains=false;

对于(int i=0;iI很长时间没有看到
Vector
。为什么不使用
ArrayList
?默认情况下,数组没有定义equals方法,并且存储字符串数组,因此它比较引用而不是实际内容。在我的应用程序中,与Vector存在依赖关系。我们没有其他选项,这就是我们使用vect的原因或者.Thank for reply.Thank.contains方法检查不带对象的元素之间的关系?我说得对吗?@ramesh
contains
如果此向量包含指定的元素,则返回true。更正式地说,当且仅当此向量包含至少一个元素e时返回true,即(o==null?e==null:o.equals(e))。
for(int x =0; x < object.length; x++){
if(!simpleVector.contains(object[x])){
                System.out.println("test"+ i);
                i++;
            }
}
private static boolean doesContains(Vector<String[]> simpleVector, String[] object) {
  boolean doesContains = false;
  for (int i =0; i<simpleVector.size(); i++) {
      if (Arrays.equals(simpleVector.get(i), object)) {
        return true;
      }
   }
   return doesContains;
}
for (Iterator<String[]> iterator = fullVector.iterator(); iterator.hasNext();) {
    String[] object = (String[]) iterator.next();
    if(!doesContains(simpleVector, object)){
        System.out.println("test"+ i);
        i++;
    } else {
      System.out.println("It contains");
    }

}