作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个未排序的整数数组,其中值的范围从 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
解决,但我需要一个不涉及大量缓冲区空间的解决方案。
最佳答案
您可以使用 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]
}
关于java - 从大型未排序数组中删除重复项并保持顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52324648/
我是一名优秀的程序员,十分优秀!