一、写在前面
java中数组长度一旦确定不能改变,所以这里所谓去重,只是把不重复的搞到新数组中去。
二、参考代码
import java.util.Arrays;
//类名不要写中文
public class 数组去重 {
public static void main(String[] args) {
//1.需求:将数组中重复数字去重,搞到新数组中
int[] arr = {1,2,3,4,5,2,4};
//输出老数组内容
System.out.println("老数组中内容:"+ Arrays.toString(arr));
//2.创建一个新数组,存放arr中不重复的数字
int[] newArr = new int[arr.length];
//新数组添加元素的索引
int index = 0;
//3.循环动态给新数组赋值,去重
for (int i = 0; i < arr.length; i++) {
System.out.println("arr的第"+(i+1)+"个整数:"+arr[i]);
//添加之前,先判断新数组中是否存在当前的数字arr[i]
boolean isContain = isContain(newArr,arr[i]);
if(!isContain){//不重复,添加当前遍历到的数字arr[i]
newArr[index]=arr[i];
index++;
}else{//重复,做下提示,不添加
System.out.println("当前数字重复了!");
}
}
//输出新数组内容
System.out.println("新数组中内容:"+ Arrays.toString(newArr));
//4.把去重后的数组拷贝到结果数组中
int[] result = new int[index];
for (int i = 0; i < index; i++) {
result[i] = newArr[i];
}
System.out.println("结果数组:"+Arrays.toString(result));
}
/**
* 判断数组中是否包含当前元素
* @param arr 被判断的数组
* @param num 被判断的元素
* @return
*/
public static boolean isContain(int[] arr, int num) {
//循环遍历
for (int i = 0; i < arr.length; i++) {
if(arr[i] == num){//判断当前输入的数字是否已经在数组中存在
return true;
}
}
return false;
}
}