Java:如何检查两个数组的顺序是否相同?

Java:如何检查两个数组的顺序是否相同?,java,arrays,Java,Arrays,例如,我有两个数组: String [] arr1 ={"You", "book"}; String [] arr2 ={"Do", "You", "like","book" }; 我想检查arr1是否按照相同的顺序匹配arr2。如果arr1是{“book”,“You”},则arr1与arr2不匹配 好吧,我认为我的代码是错误的,但无论如何: for (int i = 0; i<arr1.length; i++){ for (int j=0; j<arr2.length; j+

例如,我有两个数组:

String [] arr1 ={"You", "book"};
String [] arr2 ={"Do", "You", "like","book" };
我想检查
arr1
是否按照相同的顺序匹配
arr2
。如果
arr1
{“book”,“You”}
,则
arr1
arr2
不匹配

好吧,我认为我的代码是错误的,但无论如何:

for (int i = 0; i<arr1.length; i++){
  for (int j=0; j<arr2.length; j++){
    if (arr1[i] != arr2[j]){
      return null;
    }
  }
}

for(inti=0;i鉴于我感觉这是某种赋值,我只想给出几个提示

您当前正在迭代这两个数组。这意味着您将每个项目与其他列表中的每个项目进行比较。例如:

String[] arr1 = { "a", "b" }
String[] arr2 = { "a", "b" }
由于使用了两个循环,您正在比较“a”(
arr1[0]
)与“a”和“b”(
arr2[0]
arr2[1]
)。您真正想要的是一个单循环,并将两个数组中的相同索引相互比较

作为额外提示,您可能完成了循环,但没有查看两个数组中的每个元素


另外,请注意,对字符串使用
!=
不是最好的方法(请参阅)。

您可以筛选数组1中不在数组2中的元素。此结果应与数组1匹配

public static boolean withinAndInOrder(String[] a, String[] b) {
    return Arrays.equals(a, Arrays.stream(b)
                            .parallel()
                            .filter(element -> Arrays.binarySearch(a, element) >= 0)
                            .toArray());
}

您想要字符串[]arr1={“a”,“b”},arr2={“b”,“c”}的什么
?纯代码编写请求与堆栈溢出无关——我们希望这里的问题与特定的编程问题相关——但我们很乐意帮助您自己编写!告诉我们,以及您遇到的困难。这也将帮助我们更好地回答您的问题。由于没有发布任何努力,这里有一个提示:您可以使用数组的indEXE来比较单词是否按顺序出现。如果你只想显示普通单词,请取出普通单词的索引。如果你想让array1的所有元素都出现在2中,然后在第二个元素上迭代,直到找到array1的第一个元素,然后再迭代,直到找到下一个。我指出了你的问题,这是你的嵌套循环。O只使用一个循环进行比较。如果数组的大小不同,那么您肯定知道它们不一样。我本来想作为答案发布,但这刚刚结束:/。
var i=0;
while(arr1[i] == arr2[i]){    // or while(arr[i].equals(arr2[i]))
    code to put if where equal
    i++;
}