我有一个未排序的整数数组,其值的范围从Integer.MIN_VALUE到Integer.MAX_VALUE。数组中可以有任何整数的多个重复项。 我需要返回一个删除所有重复项的数组,并保持元素顺序。
示例:
int[] input = {7,8,7,1,9,0,9,1,2,8}
输出应为{7,8,1,9,0,2}
我知道可以使用LinkedHashSet
来解决此问题,但是我需要一个不占用大量缓冲区空间的解决方案。
答案 0 :(得分:4)
您可以使用Java 8数组stream.distinct()
方法从数组中获取不同的值,并且仅保留输入顺序
public static void main(String[] args) {
int[] input = {7,8,7,1,9,0,9,1,2,8};
int[] output = Arrays.stream(input).distinct().toArray();
System.out.println(Arrays.toString(output)); //[7, 8, 1, 9, 0, 2]
}