1、使用双重for循环去重
import java.util.Arrays;
import java.util.HashSet;
public class ArrayDistinctExample {
public static void main(String[] args) {
Integer[] arr={1, 3, 4, 5, 4, 5, 6};
int len= arr.length;
for (int i = 0; i < len; i++) {
for (int j = i+1; j <len ; j++) {
if(arr[i]==arr[j]){
arr[j] = arr[len - 1];
len--;
j--;
}
}
}
int[] newArr = new int[len];
for (int i = 0; i < len; i++) {
newArr[i] = arr[i];
}
for (int i = 0; i < newArr.length; i++) {
System.out.print(newArr[i]+" ");
}
}
}
2、使用 Java 8 Stream
import java.util.Arrays;
public class ArrayDistinctExample{
public static void main(String[] args) {
Integer[] arr = {1, 2, 3, 4, 5, 3, 2, 6, 7, 8, 1};
Integer[] newArr = Arrays.stream(arr)
.distinct()
.toArray(Integer[]::new);
System.out.println(Arrays.toString(newArr));
}
}
3. 使用 LinkedHashSet 保持顺序
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
public class ArrayDistinctExample{
public static void main(String[] args) {
Integer[] arr = {1, 2, 3, 4, 5, 3, 2, 6, 7, 8, 1};
Set<Integer> set = new LinkedHashSet<>(Arrays.asList(arr));
Integer[] newArr = set.toArray(new Integer[0]);
System.out.println(Arrays.toString(newArr));
}
}
4、使用 HashSet集合去重,不按顺序
import java.util.Arrays;
import java.util.HashSet;
public class ArrayDistinctExample{
public static void main(String[] args) {
Integer[] arr = {1, 2, 3, 4, 5, 3, 2, 6, 7, 8, 1};
HashSet<Integer> set = new HashSet<>(Arrays.asList(arr));
Integer[] newArr= set.toArray(new Integer[0]);
System.out.println(Arrays.toString(newArr));
}
}