2013-04-28 2 views
1

Я работаю над тем, что сравнивает две версии, разделенные регулярным выражением «//.».Сравнение двух массивов синхронно в Java

То, с чем я борюсь, пытается выяснить способ сравнения двух значений в массиве «синхронно», чтобы узнать, больше ли значение в одном. Скажем, например у меня есть:

int[] newerVersion = {2, 4, 7}; 
int[] olderVersion = {1, 2, 0}; 

В этом случае я пытался бы работать, если 2> 1 и 4> 2 и так далее.

Код, который я имею прямо сейчас, может изменить порядок массивов, сопоставляя их в список и делая Collections.reverse(). Я на правильном пути? Любые идеи о том, как написать что-то подобное?

ответ

2

Просто перебирать массивы - нет необходимости использовать списки или коллекции и т.д.

boolean bools = new boolean[newVersion.length]; 
for(int i = 0; i < newVersion.length && i < oldVersion.length; i++) { 
    bools[i] = newVersion[i] > oldVersion[i]; 
} 
+0

Да, но проблема заключается в том, что если версия говорила 1.9.1, а версия на сервере была 1,8.2, то она сказала бы, что существует более новая версия (1.8.2), которая быть устаревшим. – toastedtruth

0

Итерации по массиву

boolean check = false; 
for(int i = 0; i < newerVersion.length; i++) { 
     if(newerVersion[i] > oldVersion[i]) { 
      check = true; 
      break; 
     } 
     else if(newerVersion[i] < olderVersion[i]) { 
      break; 
     } 
} 

проверка истинна, если есть новая версия.

Смежные вопросы