在Java中,去除数组中的重复元素可以通过多种方法实现,以下是几种常见的方法:
1. 使用`Set`集合去重:
import java.util.Arrays;import java.util.HashSet;import java.util.Set;public class RemoveDuplicates {public static void main(String[] args) {int[] arr = {1, 2, 2, 3, 4, 4, 5};Setset = new HashSet<>(); for (int num : arr) {set.add(num);}int[] newArr = new int[set.size()];int index = 0;for (int num : set) {newArr[index++] = num;}System.out.println(Arrays.toString(newArr));}}
2. 使用`Stream API`去重:
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));}}
3. 使用`HashMap`去重:
import java.util.HashMap;import java.util.Map;public class RemoveDuplicates {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 3, 2, 1};Mapmap = new HashMap<>(); for (int num : arr) {map.put(num, 1);}int[] newArr = new int[map.size()];int index = 0;for (Map.Entryentry : map.entrySet()) { newArr[index++] = entry.getKey();}System.out.println(Arrays.toString(newArr));}}
4. 使用`ArrayList`和`contains`方法去重:
import java.util.ArrayList;import java.util.List;public class RemoveDuplicates {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 3, 2, 1};Listlist = new ArrayList<>(); for (int num : arr) {if (!list.contains(num)) {list.add(num);}}int[] newArr = new int[list.size()];for (int i = 0; i < list.size(); i++) {newArr[i] = list.get(i);}System.out.println(Arrays.toString(newArr));}}
5. 使用`LinkedHashSet`去重,保持元素插入顺序:
import java.util.Arrays;import java.util.LinkedHashSet;import java.util.Set;public class RemoveDuplicates {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 3, 2, 1};Setset = new LinkedHashSet<>(); for (int num : arr) {set.add(num);}int[] newArr = new int[set.size()];int index = 0;for (int num : set) {newArr[index++] = num;}System.out.println(Arrays.toString(newArr));}}
以上方法各有优缺点,选择哪一种取决于你对去重后数组顺序的要求以及性能考虑。例如,如果你需要保持原始数组的顺序,`LinkedHashSet`是一个不错的选择;如果你不关心顺序,`HashSet`或`HashMap`可能更高效

