如果数组列表中没有唯一元素,我需要打印 Null

I need to print Null if there are no unique elements in an Array list

我需要一个只打印数组中唯一元素的程序,或者,如果没有唯一元素,它会打印“Null”。 我的代码已经可以找到独特的元素并打印它,但它也为每个重复的元素打印 Null。如果没有唯一的数字,或者只是唯一的元素(这已经在为此工作),我只需要打印一个“Null”。 下面的例子,它应该打印 3(非重复元素),如果你在列表中放另外 3,应该只打印 Null 一次(我不知道如何)。 感谢您的提前帮助!

public static void main(String[] args) {

        int IDs[] = { 1, 2, 3, 2, 2, 1, 5, 5 };

        int items = IDs.length;

        uniqueIDs(IDs, items);

    }

    static void uniqueIDs(int IDs[], int items) {

        Map<Integer, Integer> hash = new HashMap<>();

        for (int i = 0; i < items; i++) {

            if (hash.containsKey(IDs[i])) {

                hash.put(IDs[i], hash.get(IDs[i]) + 1);

            }

            else {

                hash.put(IDs[i], 1);
            }
        }

        for (Map.Entry<Integer, Integer> uniqueIDs : hash.entrySet())

            if (uniqueIDs.getValue() == 1)

                System.out.print(uniqueIDs.getKey() + "\n");
        
            else {
                System.out.println("null");
            }
    }
}

在你的方法的第一个循环之后你应该添加这个:

   public static void main(String[] args) {

    int IDs[] = {1, 2, 3, 2, 2, 1, 5, 3, 5};

    int items = IDs.length;

    uniqueIDs(IDs, items);

}

static void uniqueIDs(int IDs[], int items) {

    Map<Integer, Integer> hash = new HashMap<>();

    for (int i = 0; i < items; i++) {

        if (hash.containsKey(IDs[i])) {

            hash.put(IDs[i], hash.get(IDs[i]) + 1);

        } else {

            hash.put(IDs[i], 1);
        }
    }

    boolean flag = false; //We assume we don't have unique elements
    for (Map.Entry<Integer, Integer> uniqueIDs : hash.entrySet()) {
        if (uniqueIDs.getValue() == 1) {
            flag = true;//Now we have at least one unique element
        }
    }
    if (flag) {
        for (Map.Entry<Integer, Integer> uniqueIDs : hash.entrySet()) {
            if (uniqueIDs.getValue() == 1) {
                System.out.print(uniqueIDs.getKey() + "\n");
            }
        }
    } else {
        System.out.println("null");
    }
}

//输出:

null

此外:更一般的建议是,在复杂的代码中添加 {},因为有时对于试图阅读您的代码的其他人,甚至是您自己,有时真的很难理解代码块的开始或结束位置!