如果数组列表中没有唯一元素,我需要打印 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
此外:更一般的建议是,在复杂的代码中添加 {},因为有时对于试图阅读您的代码的其他人,甚至是您自己,有时真的很难理解代码块的开始或结束位置!
我需要一个只打印数组中唯一元素的程序,或者,如果没有唯一元素,它会打印“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
此外:更一般的建议是,在复杂的代码中添加 {},因为有时对于试图阅读您的代码的其他人,甚至是您自己,有时真的很难理解代码块的开始或结束位置!