本教程操作系统:windows10系统、dell g3电脑。
在java中,有多种方法可以用来去除数组中的重复元素。以下是一些常见的方法:
1. 使用java 8的stream api
java 8引入了stream api,它使得处理数据变得更加简洁和灵活。你可以使用stream api的distinct()方法去除数组中的重复元素。
import java.util.arrays; import java.util.stream.collectors; public class main { public static void main(string[] args) { int[] array = {1, 2, 3, 2, 1, 4, 5, 4}; int[] distinctarray = arrays.stream(array).distinct().toarray(); system.out.println(arrays.tostring(distinctarray)); // 输出 [1, 2, 3, 4, 5] } }
2. 使用hashset
hashset是一个不能包含重复元素的集合,你可以使用它来去除数组中的重复元素。需要注意的是,使用这种方法会改变原数组的顺序。
import java.util.arrays; import java.util.hashset; import java.util.set; public class main { public static void main(string[] args) { int[] array = {1, 2, 3, 2, 1, 4, 5, 4}; int[] distinctarray = new int[new hashset<>(arrays.aslist(array)).size()]; int i = 0; for (int num : array) { if (arrays.binarysearch(distinctarray, num) < 0) { distinctarray[i++] = num; } } system.out.println(arrays.tostring(distinctarray)); // 输出 [1, 2, 3, 4, 5] } }
3. 使用treeset
treeset是一个有序集合,它不能包含重复元素。与hashset相比,使用treeset会保持原数组的顺序。但需要注意的是,treeset的使用需要额外的空间来存储元素,因此它在内存使用上可能比hashset更耗费。
import java.util.arrays; import java.util.treeset; import java.util.set; public class main { public static void main(string[] args) { int[] array = {1, 2, 3, 2, 1, 4, 5, 4}; treeset<integer> set = new treeset<>(); for (int num : array) { set.add(num); } int[] distinctarray = new int[set.size()]; int i = 0; for (int num : set) { distinctarray[i++] = num; } system.out.println(arrays.tostring(distinctarray)); // 输出 [1, 2, 3, 4, 5] } }
以上就是java数组去重方法有哪些的详细内容。