java去掉数组里的重复的数据
比如一个整形数组,里面有100个数,现在显示每个数字出现的次数。我写了一个方法遍历数组,然后返回出现的次数。但是这样有一个问题就是重复的数据会出现多次,比如5出现3次,在...
比如一个整形数组,里面有100个数,现在显示每个数字出现的次数。
我写了一个方法遍历数组,然后返回出现的次数。
但是这样有一个问题就是 重复的数据会出现多次,比如5 出现3次,在打印输出的时候会出现3次 5 出现 3次
我打算再写个方法 把原数组里的重复数据去掉,这样打印输出的时候按这个数组里的数据来打印。 不用set map list这些东西,只用最基本的数组操作能实现吗?
目前的思路是
遍历新数组2
调用计数方法返回这个值在数组1里的出现次数
计数方法:输入数组1,某个值 返回次数
删除方法:输入数组1,返回数组2, 删除数组1里的重复值 展开
我写了一个方法遍历数组,然后返回出现的次数。
但是这样有一个问题就是 重复的数据会出现多次,比如5 出现3次,在打印输出的时候会出现3次 5 出现 3次
我打算再写个方法 把原数组里的重复数据去掉,这样打印输出的时候按这个数组里的数据来打印。 不用set map list这些东西,只用最基本的数组操作能实现吗?
目前的思路是
遍历新数组2
调用计数方法返回这个值在数组1里的出现次数
计数方法:输入数组1,某个值 返回次数
删除方法:输入数组1,返回数组2, 删除数组1里的重复值 展开
1个回答
展开全部
计数方法,你在遍历数组外边int 一个数=0,如果某个数和数组【i】相等,就++
删除方法我用的是笨方法,因为数组不能直接增删操作,要先算出新数组的长度,在遍历出去,我是取巧了先排序了,当然你也可以用其他排序方法排序
public static void main(String[] args) {
int [] arr={1,2,2,3,4,5};
int len=arr.length;
Arrays.sort(arr);
int leng=0;
for( int i=0;i<arr.length-1;i++){
if(arr[i]!=arr[i+1]){
leng++;
}
}
if(arr[arr.length-2]!=arr[arr.length-1]){
leng++;
}
System.out.println(leng);
int newlength=0;
int []newArr=new int[leng];
for( int i=0;i<arr.length-1;i++){
if(arr[i]!=arr[i+1]){
newArr[newlength]=arr[i];
newlength++;
}
}
if(arr[arr.length-2]!=arr[arr.length-1]){
newArr[newlength]=arr[arr.length-1];
}
for(int i=0;i<newArr.length;i++){
System.out.println(newArr[i]);
}
}
删除方法我用的是笨方法,因为数组不能直接增删操作,要先算出新数组的长度,在遍历出去,我是取巧了先排序了,当然你也可以用其他排序方法排序
public static void main(String[] args) {
int [] arr={1,2,2,3,4,5};
int len=arr.length;
Arrays.sort(arr);
int leng=0;
for( int i=0;i<arr.length-1;i++){
if(arr[i]!=arr[i+1]){
leng++;
}
}
if(arr[arr.length-2]!=arr[arr.length-1]){
leng++;
}
System.out.println(leng);
int newlength=0;
int []newArr=new int[leng];
for( int i=0;i<arr.length-1;i++){
if(arr[i]!=arr[i+1]){
newArr[newlength]=arr[i];
newlength++;
}
}
if(arr[arr.length-2]!=arr[arr.length-1]){
newArr[newlength]=arr[arr.length-1];
}
for(int i=0;i<newArr.length;i++){
System.out.println(newArr[i]);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询