如何在java中比较数组中的项?

时间:2013-09-02 09:25:46

标签: java arrays

我有两个可变长度的数组。假设a的长度为10,b的长度为12.我需要比较a和b的第0个索引。然后是a和b的第一个指数。同样2,3,4 ..

if(a[0]==b[0]){//some code}
if(a[1]==b[1]){//some code}
...
if(a[length]==b[length]{//some code}

。 我怎么能把它放在循环中检查?

4 个答案:

答案 0 :(得分:6)

int lim=Math.min(a.length, b.length);
for(int i=0; i<lim; i++){
    //do comparison
}

这假设我们不知道哪个数组更长。

答案 1 :(得分:3)

您需要一个保持最小值ab的变量,然后使用简单的循环比较具有索引i的项目。

int[] a = ...;
int[] b = ...;
int min = Math.min(a.length, b.length);
for (int i = 0; i < min; i++) {
   if (a[i] == b[i]) {
     //do your stuff
   }
}

请注意,只有当您的数组由基元(如int)组成时,上方代码段有效

如果您的数组由对象组成,则必须在.equals()语句中使用if

Object[] a = ...;
Object[] b = ...;
int min = Math.min(a.length, b.length);
for (int i = 0; i < min; i++) {
   if (a[i].equals(b[i])) {
     //do your stuff
   }
}

答案 2 :(得分:1)

你很有可能:

  • 希望获得更小的长度并使用它
  • 应使用equals()方法代替==

以下是一些代码:

int minLen = arr1.length>arr2.length?arr2.length:arr1.length;
for (int i=0; i< minLen; i++) {
  if (arr1[i].equals(arr2[i])) {
    // some code
  }
}

答案 3 :(得分:0)

如果a的长度为10且b的长度为12,那么你想要实现的是什么,那么你将如何比较b [10]和b [11],或者你想要:

int length = a.length > b.length? b.length:a.length; 
for(int i=0; i<length; i++) {
    // compare
}