You are making your code way too complicated, use a HashSet<String>
, which will guarantee uniqueness and will return whether the element was already in the set.
public class DuplicateEle {
public static void main(String args[]) {
Set<String> seen = new HashSet<>();
String[] arr = { "hello", "hi", "hello", "howru" };
for (String word : arr) {
boolean unique = seen.add(word);
System.out.printf("%s is duplicate: %b%n", word, !unique);
}
}
}
Using a HashSet
is very efficient as it will use the int
hash of the string to find the bucket, only then needing to use equals
to do a full ‘expensive’ equals.
1
solved Searching Duplicate String Complexity