Java 程序未给出预期在ArrayList中找到重复项的结果

Java 程序未给出预期在ArrayList中找到重复项的结果,java,arraylist,duplicates,Java,Arraylist,Duplicates,我必须在arraylist中找到任何重复的元素,然后才能将其添加到arraylist中。但它没有给出正确的输出。编译和运行都不会给出任何错误 public class MyDuplicateEntry { public static void main(String a[]) { String[] strArr = {"one", "two", "three", "four", "four", "five"}; ArrayList<String&g

我必须在arraylist中找到任何重复的元素,然后才能将其添加到arraylist中。但它没有给出正确的输出。编译和运行都不会给出任何错误

public class MyDuplicateEntry {

    public static void main(String a[]) {
        String[] strArr = {"one", "two", "three", "four", "four", "five"};
        ArrayList<String> unique = new ArrayList<String>();

        for (String str : strArr) {
            if (!unique.add(str)) {
                System.out.println("Duplicate Entry is: " + str);
            }
        }
    }
}
公共类MyDuplicateEntry{
公共静态void main(字符串a[]{
字符串[]strArr={“一”、“二”、“三”、“四”、“四”、“五”};
ArrayList unique=新的ArrayList();
用于(字符串str:strArr){
如果(!unique.add(str)){
System.out.println(“重复条目为:“+str”);
}
}
}
}

虽然
java.util.ArrayList.add()
确实返回布尔值,但这是硬编码为始终为真的

您似乎假设,如果元素已经在列表中,那么它将返回false——事实并非如此

您必须手动检查,请参见
ArrayList.contains()

笔记
有关始终返回true的详细信息,请参见上的javadoc。

虽然
java.util.ArrayList.add()
确实返回布尔值,但这是硬编码为始终为true的

您似乎假设,如果元素已经在列表中,那么它将返回false——事实并非如此

您必须手动检查,请参见
ArrayList.contains()

笔记
有关始终返回true的详细信息,请参见上的javadoc。

虽然
java.util.ArrayList.add()
确实返回布尔值,但这是硬编码为始终为true的

您似乎假设,如果元素已经在列表中,那么它将返回false——事实并非如此

您必须手动检查,请参见
ArrayList.contains()

笔记
有关始终返回true的详细信息,请参见上的javadoc。

虽然
java.util.ArrayList.add()
确实返回布尔值,但这是硬编码为始终为true的

您似乎假设,如果元素已经在列表中,那么它将返回false——事实并非如此

您必须手动检查,请参见
ArrayList.contains()

笔记
有关始终返回true的详细信息,请参阅上的javadoc。

是否有可能格式化代码?什么是大于符号?这是完全不可读的。在没有签名的情况下更改格式仍然很难看,并且不符合标准。@user2947572不是一个真正的问题,但是格式不好与这里的新内容无关。存在描述代码应如何格式化的Java代码约定。当所有人都遵循这些约定时,每个人都能更容易地从他人那里阅读代码。你有没有可能格式化你的代码?什么是大于符号?这是完全不可读的。在没有签名的情况下更改格式仍然很难看,并且不符合标准。@user2947572不是一个真正的问题,但是格式不好与这里的新内容无关。存在描述代码应如何格式化的Java代码约定。当所有人都遵循这些约定时,每个人都能更容易地从他人那里阅读代码。你有没有可能格式化你的代码?什么是大于符号?这是完全不可读的。在没有签名的情况下更改格式仍然很难看,并且不符合标准。@user2947572不是一个真正的问题,但是格式不好与这里的新内容无关。存在描述代码应如何格式化的Java代码约定。当所有人都遵循这些约定时,每个人都能更容易地从他人那里阅读代码。你有没有可能格式化你的代码?什么是大于符号?这是完全不可读的。在没有签名的情况下更改格式仍然很难看,并且不符合标准。@user2947572不是一个真正的问题,但是格式不好与这里的新内容无关。存在描述代码应如何格式化的Java代码约定。当所有人都遵循这些约定时,每个人都更容易从其他人那里阅读代码。
public static void main(String a[]) {
    String[] strArr = { "one", "two", "three", "four", "four", "five" };
    ArrayList<String> unique = new ArrayList<String>();

    for (String str : strArr) {
        if (unique.contains(str)) {
            System.out.println("Duplicate Entry is: " + str);
        } else {
            unique.add(str);
        }
    }
}
public static void main(String a[]) {
    String[] strArr = { "one", "two", "three", "four", "four", "five" };
    HashSet<String> unique = new HashSet<String>();

    for (String str : strArr) {
        if (! unique.add(str)) {
            System.out.println("Duplicate Entry is: " + str);
        }
    }
}