0
Remove duplicates from sorted array
2 Respostas
+ 4
You can also convert the set back to an array and use the array if you'd prefer.
Type[] identifier = set.toArray(new Type[set.size()]);
This will give you a new array that doesn't contain any duplicates from the first array.
A full example with object types:
import java.util.Set;
import java.util.HashSet;
import java.util.Arrays;
public class Program
{
public static void main(String[] args) {
// Array is an Integer object not int
Integer[] myIntArr = { 1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9 };
Set<Integer> myIntSet = new HashSet<Integer>(Arrays.asList(myIntArr));
Integer[] wrappedIntArr = myIntSet.toArray(new Integer[myIntSet.size()]);
for(Integer i: wrappedIntArr) {
System.out.println(i);
}
}
}
With primitive types:
import java.util.Set;
import java.util.HashSet;
import java.util.Arrays;
import java.util.stream.Collectors;
public class Program
{
public static void main(String[] args) {
int[] myIntArr = { 1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9 };
Set<Integer> myIntSet = new HashSet<Integer>(Arrays.stream(myIntArr).boxed().collect(Collectors.toList()));
Integer[] wrappedIntArr = myIntSet.toArray(new Integer[myIntSet.size()]);/
for(Integer i: wrappedIntArr) {
System.out.println(i);
}
}
}
If you need more help, post your code, or be more specific with what you need.
+ 2
You can convert it to a Set and use the set instead.
Set<T> set = new HashSet<T>(Arrays.asList(array));
https://docs.oracle.com/javase/8/docs/api/java/util/Set.html
https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html