-
2021-08-28 22:08:00
Java操控数组,删除数组中所有的重复元素,使其数组元素全部唯一,有以下几种方法:
1,使用set(最好想到),set本身就是不重复的集合;
package Array_test; import java.util.HashSet; import java.util.Set; public class delete_repeat_1 { public static void main(String[] args) { int array[] = new int[]{1,2,1,1,2,3,4,4,5}; Set set = new HashSet();//定义一个set集合 int count = 0 ;//set集合元素个数 for(int i = 0 ; i < array.length ; i++){ set.add(array[i]); } Object arr[] = set.toArray(); count = arr.length;//将set转换成数组 System.out.println(set); System.out.println("set集合元素个数:"+count); } }
2,使用list列表,依次遍历数组,调用list中的contains方法判断当前元素是否在list中,如果不在,即加入list中,这样就将重复元素干掉了
package Array_test; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class delete_repeat_1 { public static void main(String[] args) { int array[] = new int[]{1,2,1,1,2,3,4,4,5}; List list = new ArrayList(); int count = 0 ; for(int i = 0 ; i < array.length ; i++){ if( ! list.contains(array[i])){ list.add(array[i]); count++; } } System.out.println(list); System.out.println("list集合元素个数:"+count); } }
3,若使有序数组删除重复元素,不允许用Set , List ,LinkedHashSet等方法时,要自己编写for循环实现;
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
package Array_test; public class delete_repeat_1 { public static void main(String[] args) { int array[] = new int[]{1,1,1,2,3,4,4,5}; int index = 0 ; array[index] = array[0];//将第一个数组元素保留,比较时时从第二个元素开始比较; for(int i = 1 ; i < array.length ; i++){ if( array[index] != array[i]){ array[++index] = array[i]; } } index++ ;//数组元素个数是index+1个 //此时array数组后面依然会有4 4 5 三个元素,但是我们输出截止到index; for(int i = 0 ; i<index ; i++ ) System.out.println(array[i]); System.out.println("array集合元素个数:"+ index); } }
Java删除数组中重复元素还会有其他方法,比比皆是,这里只列出了三种简单易懂的方法供大家使用。
更多相关内容 -
LabVIEW 删除数组中重复元素实例
2020-12-01 13:51:08LabVIEW 删除数组中重复元素实例 , LabVIEW8.2 编写 删除数组中重复的元素. 查找重复元素 并删除重复 -
jquery删除数组中重复元素
2020-11-29 20:22:13话不多说,下面就跟着小编来看下利用jquery实现删除数组中重复元素的具体思路吧 首先定义如下数组: var arr=[0,2,3,5,6,9,2]; 我们可以看到数组中存在重复元素’2′; 最后通过jquery筛选应该得到[0,2,3,5,6,9]; ok... -
labview 删除数组中重复的元素
2019-02-18 10:25:22labview中,实现删除数组中重复的元素,产生一个新数组 -
c\c++语言删除数组中重复元素
2022-02-07 13:41:13c\c++语言删除数组中重复元素 如题:num[]={1,2,3,3,4,5,6} 输出为:123456 下为原代码: #include "stdafx.h" #include "iostream.h" void findnum(int num[7]) { int i,k,n=7,j;//num[7]={1,2,3,3,4,5,6};...c\c++语言删除数组中重复元素 如题:num[]={1,2,3,3,4,5,6} 输出为:123456
下为原代码:
#include "stdafx.h"
#include "iostream.h"void findnum(int num[7])
{
int i,k,n=7,j;//num[7]={1,2,3,3,4,5,6};
for(i=0;i<n;i++) // num[i]对比所有的元素值
{
for(j=i+1;j<n;j++)//因为不跟自己比值所以是i+1
{
if(num[i]==num[j])//当遇到相同元素值时。num[2]==num[3]
{
for(k=j;k<n;k++)//
{
num[k]=num[k+1];//把num[3]=num[4],num[4]=num[5]等等,覆盖前面的值。
//当找到num[2]与num[3]相同值时,
//num[3]后的所有值都覆盖前面一个值。
}
n--;//为什么要n--?1是因为覆盖了前面的值,后面的值就不需要显示了。2是为了数组被少了一个元素了。
j--;//为什么要j--?新值(刚被覆盖的值num[3]=4)还没有比较。
//减了之后,上去循环会再加1,那么它还是3,还是会把新值重新比较。
}
}
}
for(i=0;i<n;i++)//只要往前覆盖过一次,n值就会减少一次,按n循环就可得出实际元素数。
{
printf("%d",num[i]);
}
}
int main(int argc, char* argv[])
{
int a[]={1,2,3,3,4,5,6};
findnum(a);
return 0;
}也是看到本站tiny_evil给的代码再加上自己的理解才能写出。
-
怎样删除数组中重复元素
2020-09-15 23:07:25有序数组 题目来源LeetCode#26删除排序数组中的重复项 暴力解 var removeDuplicates = function(nums) { for(let i = 0;...思路很简单,循环找到重复元素删除就好了。注意删除后index要减一。 双指针解 v有序数组
暴力解
var removeDuplicates = function(nums) { for(let i = 0;i < nums.length; i++){ if(nums[i] == nums[i+1]){ nums.splice(i,1) i-- } } return nums.length }
思路很简单,循环找到重复元素删除就好了。注意删除后index要减一。
双指针解
var removeDuplicates = function(nums) { for (var m = 0, n = 0; n < array.length; n++) { if (array[m] !== array[n]) { m++ // 如果只是为了返回不重复元素个数 可以不写 array[m] = array[n] } } return m + 1 }
无序数组
额外数组
// 时间复杂度是O(n) 不过创建了新的数组 let array = [2, 3, 1, 5, 7, 3, 7, 9] let arr = [] array.forEach(element => { if (arr.indexOf(element) === -1) { arr.push(element) } }) console.log(arr)
原数组上
// 双向for循环,不增加额外数组 T=O(n2) let array = [2, 3, 1, 5, 7, 3, 7, 9] let arr = [] for (let i = 0; i < array.length; i++) { for (let j = i + 1; j < array.length; j++) { if (array[j] === array[i]) array.splice(j, 1) } } console.log(array)
ES6
Set
// 使用Set let array = [2, 3, 1, 5, 7, 3, 7, 9] let arr = [] let set = new Set array.forEach(element => arr = [...set.add(element)] ) console.log(arr)
Map
// 使用Map let array = [2, 3, 1, 5, 7, 3, 7, 9] let arr = [] let map = new Map array.forEach(element => { if (!map.has(element)) { map.set(element, element) arr.push(element) } }) console.log(arr)
大家加油 😃
-
c语言删除数组中重复元素
2020-01-25 19:47:54原题:把一个数组中的重复元素去掉。如a[12]={1,1,2,7,3,2,3,4,5,8,7,4},输出为:1,2,7,3,4,5,8 在csdn上查了一下,发现给出的方法都很复杂,对新手很不友好,于是写了一个比较简单的,源码如下: #include<...原题:把一个数组中的重复元素去掉。如a[12]={1,1,2,7,3,2,3,4,5,8,7,7},输出为:1,2,7,3,4,5,8
在csdn上查了一下,发现给出的方法都很复杂,对新手很不友好,于是写了一个比较简单的,源码如下:#include<stdio.h> #define N 12 int main() { int i,j,n=N,k; int num[N]={1,1,2,7,3,2,3,4,5,8,7,7}; for(i=0;i<n-1;++i) { for(j=i+1;j<n;++j) //从num[i]的下一位开始比较,直到最后一位 if(num[i]==num[j]) //如果数字重复 { for(k=j;k<n-1;++k) //从num[j]开始,所有数字前移一位 num[k]=num[k+1]; --n; //数组长度-1 --j; //因为有++j,所以这里先减一下,否则num[i]比较的是移动之后的下一位,会漏掉一个数 } } for(i=0;i<n-1;++i) printf("%d,",num[i]); printf("%d",num[i]); return 0; }
希望对大家有所帮助,还有,新年快乐鸭!!!!
-
Java实现删除排序数组中重复元素的方法小结【三种方法比较】
2020-08-26 07:21:59主要介绍了Java实现删除排序数组中重复元素的方法,结合实例形式对比分析了三种常见的数组元素删除算法操作技巧,需要的朋友可以参考下 -
php删除数组中重复元素的方法
2020-10-23 02:46:19在很多情况下我们的数组会出现重复情况,那我们删除数组中一些重复的内容怎么办,本文讲述了php删除数组元素的方法,感兴趣的小伙伴们可以参考一下 -
删除数组中重复元素
2017-09-29 15:44:35给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。 分析: 一、借助集合的方法 1)将数组... -
删除数组中的重复元素
2014-05-09 16:03:13这是一个用C++编的删除数组中的重复元素的程序~ -
删除数组中重复的元素
2021-12-27 01:22:06文章目录数组——删除数组中重复的元素 数组——删除数组中重复的元素 最近开始做课设,发现了不少问题,其中之一就是如何去删除数组中重复的元素,当我第一次遇到这个问题就不知所措了???????????? 通过查找资料,... -
删除数组中重复元素(C语言)
2021-12-08 22:08:49编写函数,删除数组中所有的重复元素,使数组变成一个集合,函数返回集合中元素的个数。 书上习题 #include<stdio.h> int set(int a[],int n) { int i,j,k; for(i=0;i<n;++i)//每次以a[i]为比较标准 ... -
java中删除数组中重复元素方法探讨
2020-09-05 00:15:53个是一个老问题,但是发现大多数人说的还不够透。小弟就在这里抛砖引玉了,欢迎拍砖 -
java去除已排序数组中的重复元素
2020-09-01 15:06:06主要为大家详细介绍了java去除已排序数组中重复元素的方法,感兴趣的小伙伴们可以参考一下 -
Java中删除数组中重复元素
2017-07-03 14:20:00问题:比如我有一个数组(元素个数为0哈),希望添加进去元素不能重复。 拿到这样一个问题,我可能会快速的写下代码,这里数组用ArrayList. privatestaticvoidtestListSet(){ List&... -
labview写的删除数组中重复项
2018-04-25 17:00:46labview写的删除数组中重复项,数组没有重复,保持唯一性 -
删除数组中重复元素(sse)
2021-11-22 21:44:58题干: 删除数组中的重复元素 给定一维整型数组array(数组大小不超过100),如果数组中的某个元素与排在它之后的元素重复,则对其进行删除,直到数组中没有重复元素为止。保证剩余元素的相对次序保持不变,打印删除... -
在javascript中,如果删除二维数组中重复的元素
2020-10-30 20:00:25在javascript中,如果删除二维数组中重复的元素 -
c++删除数组中重复元素_LeetCode第二十六题-删除数组重复元素
2020-11-21 19:51:54Remove Duplicates from Sorted Array问题简介:给定一个有序的数组,删除数组中的重复元素,返回的是不重复元素的个数n,传入的数组nums的前n个值应变为不重复元素举例:1:给定的数组 = [1,1,2],返回长度n = 2,并且... -
java 删除数组元素与删除重复数组元素的代码
2020-09-05 00:15:32在java中删除数组元素与过滤重复数组元素我们都会需要去遍历数组然后根据我们设置的值或方法进行去除数组 -
【算法题】删除数组中重复的元素
2021-12-11 19:15:33算法题:删除数组中重复的元素(去重、排重) -
c++删除数组中重复元素_经典算法题:删除排序数组中的重复项
2020-11-21 19:52:00一、题目给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 ... -
js删除数组内多个相同元素——数组去除重复元素
2022-03-02 15:53:23js删除数组内多个相同元素——数组去除重复元素 1、需求 有数组testArr= [“b”, “d”, “a”, “b”, “c”, 1, 5],需要把数组内的"b"删掉。 2、方法 方法1.1 使用i–,初始值为length-1,这样删除为数组最后开始... -
LeetCode——解决删除数组中重复元素问题三种方式
2018-04-03 18:03:35经过一系列的思考与实践,总结出了以下三种不同情形“删除数组重复元素”的解决办法。 1、通过原始数组删除重复元素 方法一:不重新开辟内存(不创建list、set等),可以在原始数组中原地删除重复元素。 由于... -
删除数组中重复的元素(两种求法)
2020-11-13 23:37:23●删除数组中重复的元素 (1) int removedulplicate(int *str,int n) { int i=0; int j=0; int length=1; for(i=0;i<n;i++) { if(str[i]!=str[length-1]) { str[length++]=str[i]; } } return ... -
删除数组重复元素.vi
2020-04-21 18:58:03Labview中一种删除重复元素的方法