【问题标题】:Compare two Arrays synchronously in Java在Java中同步比较两个数组
【发布时间】:2026-02-11 23:55:01
【问题描述】:

我正在研究比较由正则表达式“//.”分割的两个版本。

我正在努力寻找一种“同步”比较数组中两个值的方法,以便查看一个值是否大于另一个值。比如说我有:

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

在这种情况下,我会尝试计算 2 > 1 和 4 > 2 等等。

我现在的代码可以通过将数组映射到 List 并执行 Collections.reverse() 来反转数组的顺序。我在正确的轨道上吗?关于如何写这样的东西的任何想法?

【问题讨论】:

    标签: java arrays integer compare version


    【解决方案1】:

    只需遍历数组 - 无需使用列表或集合等。

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

    【讨论】:

    • 是的,但问题是如果版本是 1.9.1,而服务器上的版本是 1.8.2,那么它会说有更新的版本可用(1.8. 2),这将是过时的。
    【解决方案2】:

    遍历数组

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

    如果有更新版本,则检查为真。

    【讨论】: