- /*数组去重
- 例如:
- 原始数组是{4,2,4,6,1,2,4,7,8}
- 得到结果{4,2,6,1,7,8}*/
- public class Test7 {
- public static void main(String[] args) {
- int oldA[]={4,2,4,6,1,2,4,7,8};//初始化原始数组
- int x=0;//初始化新的数组长度
- int y=0;//初始化新数组的脚标
- int m=0;
- int n=0;
- for(int i=1;i<oldA.length;i++){//嵌套循环给与数组索引编号靠后的项数相同的项赋值为0
- for(int j=0;j<i;j++){
- if(oldA[i]==oldA[j]){
- oldA[i]=0;
- }
- }
- }
- for(int i=0;i<oldA.length;i++){//判断原始数组变更后的0项的个数
- if(oldA[i]!=0){ //并从新数组长度的初值减去
- x++;
- }
- }
-
- int newA[]=new int[x];//初始化新数组,类型,长度
- for(int i=0;i<oldA.length;i++){
- if(oldA[i]!=0){//将原始数组中的非零项加入新数组
- newA[y]=oldA[i];
- y++;//每被赋值一次,新数组的脚标数值+1以便下次赋值用
- }
- }
- for(int i=0;i<newA.length;i++)
- System.out.print(newA[i]+" ");//循环输出新数组
- }
- }
复制代码
我那时候没用动态哈,不过为了初始化静态倒是费了不少劲,那时候写的,后来想起来少了个非0判断,懒得改了 |