用于搜索指定字符串数组是否包含在向量中的java代码
我想找出simplevector对象findout fullVectorData对象,是否?为什么这里包含的方法没有给出所需的结果?您将添加到用于搜索指定字符串数组是否包含在向量中的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
向量
数组对象!因此,您的向量
不包含字符串
它包含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方法检查不带对象的元素之间的关系?我说得对吗?@rameshcontains
如果此向量包含指定的元素,则返回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");
}
}