将一个数组中重复的元素去除,并且返回一个新数组
程序员文章站
2024-01-06 14:18:52
...
public static void main(String[] args) {
// 声明一个数组
int[] arr = {1, 7, 7, 4, 5, 1, 1, 3, 3, 6, 9};
// 打印一下去重前的数组
System.out.println("数组去重前:" + Arrays.toString(arr));
int[] newArr = deleteRepeat(arr);
System.out.println("数组去重后:" + Arrays.toString(newArr));
}
public static int[] deleteRepeat(int[] arr) {
int[] Arr = new int[arr.length];
// 先对原数组进行排序
Arrays.sort(arr);
// 为新数组声明一个索引
int a = 0;
for (int i = 0; i < arr.length; i++) {
// 声明一个boolean类型的标记,每次都要进行重置
boolean xiabiao = true;
// 嵌套内层循环将原数组元素逐个比较,每次比较都是前一个元素与后一个元素的比较(i :i+1)
for (int j = i + 1; j < arr.length; j++) {
// 判断元素值是否重复,若重复判断为false,则跳出当前层循环,不保存重复的元素值
if (arr[i] == arr[j]) {
xiabiao = false;
break;
}
}
// 判断的结果,若xiabiao = true成立,将原数组元素赋给新数组,并且赋值完成之后下标自增
if (xiabiao) {
Arr[a] = arr[i];
a ++;
}
}
// 再次定义一个新数组,使用Arrays.copyOfRange的方法拷贝去重之后的数组
// (这一步的意义是因为,如果直接传回去重后的数组得到的值是[1, 3, 4, 5, 6, 7, 9, 0, 0, 0, 0] 有0 就很难看,重新拷贝之后将多余的默认值删去)
int[] newarrs = Arrays.copyOfRange(Arr, 0, a);
// System.out.println(Arrays.toString(newarrs));
// 返回数组
return newarrs;
}
推荐阅读
-
将一个数组中重复的元素去除,并且返回一个新数组
-
将数组扁平化并去除其中重复数据,最终得到一个升序且不重复的数组
-
php 统计二维数组中某个相等值的总个数,并且组合成一个新的数组
-
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
-
用JS编写一个函数,返回数组中重复出现过的元素(实例)
-
5位评委对参赛选手进行打分,将所有的打分结果存储到对应类型的数组中, 将所有的评分结果去除一个最低分,去除一个最高分,然后获取的平均分数为 选手的最终得分.设计程序,用键盘输入5位评委的评分,并打印输
-
Java经典编程习题100例:第18例:编写程序,将一个数组中的元素倒排过来。例如原数组为1,2,3,4,5;则倒排后数组中的值
-
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素
-
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
-
算法题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不