当前位置: 首页 > 知识库问答 >
问题:

比较对象数组的元素

沈长恨
2023-03-14

假设我有一个叫“序列”的类。这个类有一个实例变量private int[]tab。还有一些方法可以创建这个选项卡,比如:

public Sequence() {
    this.tab = fillAnArray(drawsNumber(5, 20));
}

private int drawsNumber(int min, int max) {
    if (min > max) {
        throw new IllegalArgumentException("Wrong range");
    }
    return new Random().nextInt(max - min + 1) + min;
}

public int[] fillAnArray(int size) {
    int[] arr = new int[size];
    arr[0] = 1;
    for (int i = 1; i < arr.length; i++) {
        arr[i] = drawsNumber(arr[i - 1], arr[i - 1] + 10);
    }
    return arr;
}

现在,我想创建一个方法,它接受两个Sequence对象作为参数,并返回相同tab元素的数量。所以,我创建了这样的方法:

public int howManyCommonElements(Sequence c1, Sequence c2) {
    int i = 0, j = 0;
    int counter = 0;
    while (i < c1.tab.length && j < c2.tab.length) {
        if (c1.tab[i] == c2.tab[j]) {
            ++counter;
        } else if (c1.tab[i] < c2.tab[j]) {
            ++i;
        } else {
            ++j;
        }
    }
    return counter;
}

共有1个答案

凤安然
2023-03-14

您必须将第一个数组的每个元素与第二个数组的每个元素进行比较。为此,您必须使用2个嵌套的循环:

for (int i = 0; i < c1.tab.length; i++)
    for (int j = 0; j < c2.tab.length; j++)
        if (c1.tab[i] == c2.tab[j])
            ++counter;
 类似资料:
  • 如果两个集合包含相同的对象,如何进行比较? 当然会打印错误。

  • 问题内容: 我想比较JavaScript代码中2个对象数组。这些对象共有8个属性,但是每个对象都不会有一个值,并且每个数组的大小永远都不能超过8个,因此可能要使用遍历每个对象然后查看对象的值的蛮力方法。 8个属性是执行我想做的最简单的方法,但是在实现之前,我想看看是否有人有一个更优雅的解决方案。有什么想法吗? 问题答案: 编辑:您不能在JavaScript解释器的当前基于浏览器的常见实现中重载运算

  • 我的问题是"为什么?:" 这些数组完全相同。 我的最小示例并没有再现这一点: 这个也没有: 我不知道为什么这些不平等。还有一个额外的问题,我如何比较它们? 我需要一种有效的方法来检查aaa是否在堆栈aa中。 我没有在aa中使用

  • 我有一个包含以下数据的文档集合 我想获取具有“管理员”和“用户”角色且状态为“已创建”的用户的文档计数。现在,我正在尝试匹配电子邮件ID和角色。 有什么方法可以比较来自同一对象的数组元素吗?

  • 我有一个如下所示的Powershell数组: 我需要找到TSMserver和集群的所有VM都具有相同的值。 我需要一个命令来检索(例如)这两个VM,因为它们共享相同的第一个值。 所以实际上我需要将数组中的每个对象与其他对象进行比较,以找到前两个属性的公共值。 提前非常感谢!

  • ObjectHolder类型的对象中的多用途字段包含对象OBJ。obj可能存储包装的基元或基元数组。如果两个对象是数组,我们如何比较它们?一个简化的例子: