Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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 - Fatal编程技术网

在Java中比较二维数组和一维数组

在Java中比较二维数组和一维数组,java,Java,伙计们,我在使用java方面有点新手,我正在尝试编写一个程序来检查2d数组是否包含1d数组的值。第二个数组就像一个数字列表,如果它们匹配,它将检查第一个数组 array1[6]= {"a","b","c","d","e","f"} array2[1][4]={{"a","b","c","d"}{"d","e","f","g"}} array2[0]= rowcomplete ; // because it contain all the value a,b,c,d array2[1]= inco

伙计们,我在使用java方面有点新手,我正在尝试编写一个程序来检查2d数组是否包含1d数组的值。第二个数组就像一个数字列表,如果它们匹配,它将检查第一个数组

array1[6]= {"a","b","c","d","e","f"}
array2[1][4]={{"a","b","c","d"}{"d","e","f","g"}}
array2[0]= rowcomplete ; // because it contain all the value a,b,c,d
array2[1]= incomplete; // because it only match d,e,f but not g
这是我的代码:

String array1[] = {"a","b","c","d","e","f"};
String array2[][] = {{"a","b","c","d"}, {"d","e","f","g"}};

for (int 2row = 0; 2row < array2.length; 2row++) {
  for (int 2column = 0;2column< array2[2row].length;2column++) {    
    for(int 1row=0; 1row < array1[1row].length();1row++) {
      if (array2[2row][2column].equals(array1[1row])) {
        System.out.println("complete"); 
      }
      else{

      }
    }
  }
}
stringarray1[]={“a”、“b”、“c”、“d”、“e”、“f”};
字符串数组2[][]={{“a”、“b”、“c”、“d”}、{“d”、“e”、“f”、“g”};
for(int 2row=0;2row
一种简单的方法是使用Arrays类将数组转换为列表,并使用containsAll方法,如下所示:

  String array1 []={"a","b","c","d","e","f"};
  String array2 [][] ={{"a","b","c","d"},{"d","e","f","g"}};

  List<String> array1AsList = Arrays.asList(array1);

  for (int i = 0; i < array2.length; i++) {
      List<String> array2rowAsList = Arrays.asList(array2[i]);

      if(array1AsList.containsAll(array2rowAsList)){
          System.out.println("row " + i + " is complete");
      }
  }
stringarray1[]={“a”、“b”、“c”、“d”、“e”、“f”};
字符串数组2[][]={{“a”、“b”、“c”、“d”}、{“d”、“e”、“f”、“g”};
List array1AsList=Arrays.asList(array1);
for(int i=0;i
为了澄清班塔尔上述评论的含义:


Java变量名不能以数字开头。它们只能以下划线、字母或美元符号$开头。在第一个字母之后,可以使用数字。

如果对array1使用数组列表,这会更容易,因为可以使用arrayList.contains()确定值是否在列表中

如前所述,使用数组列表并声明/初始化array2,请尝试以下操作: ArrayList array1=新的ArrayList(); 集合。添加所有(数组1,“a”、“b”、“c”、“d”、“e”、“f”)
布尔匹配标志

for(int i = 0;i< array2.length; i++){
    matchFlag = true;
    for(int j=0;j<array2[i].length; j++){
        if(array1.contains(array2[i][j]) == false){
            //found string that did not match
            //
            matchFlag = false;
        }
    }
    if(matchFlag){
       //complete array
    }
}
for(int i=0;i对于(int j=0;j,也可以使用array.equals

String array1[] = {"a","b","c","d","e","f"};
String array2[][] = {{"a","b","c","d"}, {"d","e","f","g"}};

for (int i = 0; i < array2.length; i++) {
    if(java.util.Arrays.equals(array1, array2[i]) {
        ...
    }
}
stringarray1[]={“a”、“b”、“c”、“d”、“e”、“f”};
字符串数组2[][]={{“a”、“b”、“c”、“d”}、{“d”、“e”、“f”、“g”};
for(int i=0;i
为什么你所有的变量名都以数字开头?它无法编译。哦!对不起我的错误,还有array1[]={“a”、“b”、“c”、“d”、“e”、“f”}和array2[]={{“a”、“b”、“c”、“d”}{“d”、“e”、“f”、“g”}}对不起:下次你会打败我的:)