首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java -在多个数组中查找重复条目

Java -在多个数组中查找重复条目
EN

Stack Overflow用户
提问于 2012-05-04 23:32:51
回答 3查看 1.1K关注 0票数 0

我希望在一组点数组中找到唯一的点(即删除所有的重复项并查看剩下的部分)。

下面是我尝试过的代码:

代码语言:javascript
复制
int numCount = 0;
    for (int x = 0; x < ALLARRAYS.length; x++) {
        for (final Point test : ALLARRAYS[x]) {
            NUMBER: for (final Point[] numbers : ALLARRAYS) {
                if (numbers == ALLARRAYS[x]) {
                    continue;
                }
                for (int i = 0; i < numbers.length; i++) {
                    if (test.equals(numbers[i])) {
                        break NUMBER;
                    } else {
                        if (i == numbers.length - 1) {
                            numCount++;
                        }
                    }
                }
            }
            if (numCount == 10) {
                System.out.println(x + "\tPoint: " + test.x + ", " + test.y + " is unique.");
            }
            numCount = 0;
        }
        System.out.println();
    }

基本上,我有11个要检查的数组,因此numCount检查待确认的10个数组。我的方法是遍历每个数组,然后遍历数组中的所有点,然后循环遍历其他数组中的每个点。如果它看到一个重复,它会跳过整个数字。

我的问题:我得到了错误的读数。我不知道是怎么回事,但是这个程序发出了其他数组中已经存在的点。

我的目标:每个数组作为一个整体工作。如果一个元素不满足,则跳过整个数组。我的最终结果应该是11个大小较小的数组,它们都是唯一的,这样一个方法就可以检查每个集合的元素并确定它们都是唯一的。

注意:数组现在都是独一无二的,它们非常庞大。我正在寻找一种方法来截断它通过创建这个迷你程序,以消除重复。

我的问题:能请人帮帮我吗?

EN

Stack Overflow用户

回答已采纳

发布于 2012-05-04 23:44:54

您的代码似乎检查了有关Point的所有数组,包括您要查找的Point出现的数组。因此,您的代码将始终找到它正在寻找的Point,最终将没有结果。

你可能需要这样做:

代码语言:javascript
复制
        NUMBER: for (final Point[] numbers : ALLARRAYS) {
            if (numbers == array) {
                continue; // skip the array that contains 'test'
            }
            ...
        }

这样,您将跳过包含test元素的数组。

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10457399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档