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++;
}