java - 比较数组元素

标签 java arrays compare

请帮我解决这个问题。我想通过 array2 的元素扫描 array1,如果在 array1 中找到,则忽略 array2 的元素。所以只会留下水果 list 。但输出显示:球,铅笔。我希望它只显示水果中的元素。谢谢你的帮助

import java.util.*;
public class CountFruits
{
    public static void main(String args[])throws Exception
    {
        String array1[] = {"apple", "mango", "orange", "banana", "ball", "pencil"};
        String array2[] = {"ball", "pencil"};
        List<String> fruits = new ArrayList<String>();
        for(int x = 0; x < array1.length; x++)
        {
            for(int y = 0; y < array2.length; y++)
            {
                if(array1[x].equals(array2[y]))
                {
                    System.out.println(array1[x] + "\t" + array2[y]);
                    if(!fruits.contains(array1[x]))
                    {
                        fruits.add(array1[x]);
                    }
                }
            }//end for
        }//end for
        System.out.println("fruits: " +fruits);
    }
}

最佳答案

首先,我假设这是某种家庭作业,所以我不会通过修复您的代码来破坏您的练习。

想法是这样的:您需要创建一个 boolean 变量来指示嵌套循环是否找到任何东西,将其设置为“未找到”进入循环,并在循环结束后检查它。如果循环指示已找到一个项目,则跳过它;否则,添加它。请记住,您只能在嵌套循环完成后执行此操作,因此在嵌套循环内调用 fruits.add 为时过早。

boolean found = false;
for(int y = 0; !found && y < array2.length; y++) {
    found |= array1[x].equals(array2[y]);
}
if (!found) ...

关于java - 比较数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11863360/

相关文章:

c++ - 读取内存指针卡住进程

Java Web 应用程序页面负载监视器

java - doInBackground() 错误 -> NoClassDefFoundError : org. apache.http.entity.ContentType

java - 简化 if 语句

python - 比较 numpy 数组中的整行和整列并删除选定的行和列

xml - 比较两个xml文件的程序

java - 如何在 JFrames 中使用 2 类绘制通过 Netbeans 中的 Palette 生成代码?

php - 将一个数组缩减为另一个数组

java - 如何在 Android 中获取 volley JSONArray

php - 使用 PHP 获取任何给定输入的唯一哈希值