remove duplicates from an unsorted array in java
remove duplicates from an unsorted array in java
I was asked in one of the interview that i recently appeared to remove duplicates from unsorted array while still maintaining the order in which they appeared.
For example:
int nums = [2,1,3,3,2,1,4]
int result = [2,1,3,4]
I tried two options one with Hashset and other with list. But i was still wondering if there is an better optimized solution to this.
Appreciate if you can help me out
NerdyHB
Here is are solution
public static void main(String args)
int nums = new int 2, 1, 3, 2, 1 ;
List<Integer> result = removeDuplicates(nums);
System.out.println(result);
int res = removeDuplicatesUsingHashSet(nums);
System.out.println(Arrays.toString(res));
public static List<Integer> removeDuplicates(int nums)
List<Integer> result = new ArrayList<>();
for (int n : nums)
if (!result.contains(n))
result.add(n);
return result;
public static int removeDuplicatesUsingHashSet(int nums)
HashSet<Integer> hset = new HashSet<>();
for (int n : nums)
hset.add(n);
int result = new int[hset.size()];
int counter = 0;
Iterator<Integer> itr = hset.iterator();
while (itr.hasNext())
result[counter++] = itr.next();
return result;
1 Answer
1
Change the line:
HashSet<Integer> hset = new HashSet<>();
to:
LinkedHashSet<Integer> hset = new LinkedHashSet<>();
Thanks for contributing an answer to Stack Overflow!
But avoid …
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
But avoid …
To learn more, see our tips on writing great answers.
Required, but never shown
Required, but never shown
By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.
your HashSet solution doesn't preserve order.
– jdigital
Aug 31 at 3:56