主要思想:
数组可以无序
假设数字里的值都为正
循环判断数组 如果与前面的数字相同则变为-1
然后记录-1的个数算出重复值
然后重新new一个减去重复值长度的新数组
和原数组判断 不为-1的全部复制进来即可
代码如下:
package Del_Same_Num; public class Del_Same_Num { static int count=0; //计算重复值
public static int count_same_number(int[] a)
{
for(int i=0;i<a.length;i++)
{
for(int j=i+1;j<a.length;j++)
{
if(a[i]==a[j]&&a[i]!=-1)
{
System.out.print("i="+i+":"+"j="+j+'\t');
a[j]=-1;
count++;
System.out.println("有重复值是"+a[i]);
}
}
} System.out.println("一共有"+count+"个重复值");
return count; } public static int[] change(int src[])
{
int length=src.length-count_same_number(src);
int[] target=new int[length]; int index=0;
for(int i=0;i<src.length;i++)
{
if(src[i]!=-1)
{
target[index]=src[i];
index++;
}
} display(target);
return target;
} //显示
public static void display(int[] a)
{
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
}
public static void main(String[] args) {
int a[]={1,2,2,3,4,1,1,21,4,5,5,6,7,19,20,21};
display(a);
change(a);
} }
运行效果: