java - 如果一个数组中的值不包含在另一个数组中,如何返回 false?

标签 java arrays compare

我有两个数组。一个是输入用户数组,另一个是选择数组。例如,用户数组为 BLACK、RED、GREEN,选择数组为 BLUE、RED、GREEN。因为 BLACK 不在选择数组中,所以它会返回 false。您还可以让 RED,RED,RED 返回 True,因为红色包含在选择数组中,无论您使用该选择多少次。

这是我当前的代码,但由于某种原因 isTrue 只上升一次,我不认为它可以解释相同颜色的多种选择。我觉得必须有一种更简单的方法来做到这一点?

public Boolean isValidColour(String userInput) {
        ArrayList<String> userPegsArray = new ArrayList<>();
        String[] userPegs = userInput.toUpperCase().split(",");
        int isTrue = 0;
        for (String peg: userPegs) {
            userPegsArray.add(peg);
        }

        for (int i = 0; i <Peg.values().length; i++) {
            for (String peg:userPegsArray) {
                if(peg.equals(Peg.valueOf(i).toString())) {
                    isTrue += 1;
                }
            }
        }
        if(isTrue == 5) {
            return true;
        }
        return false;
    }

更新:已解决,感谢评论中的帮助。

解决方案

    public Boolean isValidColour(String userInput) {
        ArrayList<String> userPegsArray = new ArrayList<>();
        String[] userPegs = userInput.toUpperCase().split(",");
        for (String peg: userPegs) {
            userPegsArray.add(peg);
        }

        Map pegMap = new HashMap<String,Integer>();
        for (int i = 0; i < Peg.values().length; i++) {
            pegMap.put(Peg.valueOf(i).toString(), i);
        }

        for (String peg:userPegs) {
            System.out.println("Peg: " + peg + " | pegMap: " + pegMap.toString());
            if (pegMap.containsKey(peg)) {
                System.out.println("ayyyayay");
                return true;
            }
        }
        return false;
    }

最佳答案

请注意

    public Boolean isValidColour(String userInput) {
        List<String> userPegsArray = Arrays.asList(userInput.toUpperCase().split(","));
        return Peg.containsAll(userPegsArray);
    }

关于java - 如果一个数组中的值不包含在另一个数组中,如何返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58741870/

相关文章:

javascript - 如果列表中存在特定值,则从 Array 中删除数组

java - 如何检查两个日期之间是否有至少 1 天的差异

java - 在定义行之外实现 Comparator 的比较方法

java - 当我在 autocompletetextview 中输入空格键时,我的应用程序崩溃了

java - 从 Spring Boot 执行 Neo4j 密码查询

Java - 为什么我的鼠标不能正确移动?

java - 两个长值相减时相差一个小时

java - 查找已排序循环整数数组的起点索引

c# - 如何将长数组转换为字节数组?

linux - 比较两个网站,看是不是 "equal?"