📅  最后修改于: 2023-12-03 14:49:25.220000             🧑  作者: Mango
在Java中,有时候需要从数组中删除重复元素。这可以通过创建一个新数组来实现。以下是一个简单的Java程序,用于从数组中删除重复元素:
import java.util.ArrayList;
import java.util.Arrays;
public class RemoveDuplicates {
public static void main(String[] args) {
int[] arr = {1, 2, 2, 3, 4, 4, 5};
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < arr.length; i++) {
if (!list.contains(arr[i])) {
list.add(arr[i]);
}
}
int[] newArr = new int[list.size()];
for (int i = 0; i < newArr.length; i++) {
newArr[i] = list.get(i);
}
System.out.println(Arrays.toString(newArr));
}
}
该程序使用了Java的ArrayList类来存储非重复的元素。它首先迭代原始数组,如果该元素不在新列表中,则添加该元素。最后,将ArrayList转换为原始数组并将其打印出来。
此方法还可以通过使用HashSet类来实现。使用HashSet类的主要优点是速度更快。以下是使用HashSet的Java程序:
import java.util.HashSet;
import java.util.Arrays;
public class RemoveDuplicates2 {
public static void main(String[] args) {
int[] arr = {1, 2, 2, 3, 4, 4, 5};
HashSet<Integer> set = new HashSet<Integer>();
for (int i = 0; i < arr.length; i++) {
set.add(arr[i]);
}
int[] newArr = new int[set.size()];
int i = 0;
for (Integer val : set) {
newArr[i] = val;
i++;
}
System.out.println(Arrays.toString(newArr));
}
}
该程序使用Java的HashSet类来存储非重复的元素。它首先迭代原始数组,将每个元素添加到HashSet。最后,将HashSet转换为原始数组并将其打印出来。
但是需要注意的是,HashSet类的不足之处是它不保留元素的顺序。如果需要保留元素的顺序,则需要转换为ArrayList或使用java.util.LinkedHashSet类。