本帖最后由 ℃葫芦 于 2015-8-15 19:12 编辑  
 
基础测试题里有个题是这样的:数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8} 
 
看到这个题首先想到的是将数组转为集合去重之后再赋给新数组。 
然后我还有一个别的想法,不用集合,如何实现去重?下面给上代码 
 
- public class Test5 {
 
 -         public static void main (String [] args){
 
 -                 int [] arr={4,2,4,6,1,2,4,7,8,2};
 
 -                 //去重前打印演示
 
 -                 for (int x = 0 ; x<arr.length;x++){
 
 -                         System.out.print(arr[x]);
 
 -                 }
 
 -                 //换行
 
 -                 System.out.println();
 
 -                 //调用quChong方法去重。
 
 -                 int[]arr2=quChong(arr);
 
 -                 //去重后打印演示
 
 -                 for (int y = 0 ; y<arr2.length;y++){
 
 -                         System.out.print(arr2[y]);
 
 -                 }
 
 -         }
 
  
-         //定义一个函数,用于将int型数组去重
 
 -         public static int[] quChong (int[] arr){
 
 -                 //定义一个变量来记录复制的次数
 
 -                 int z = 0;
 
 -                 for (int x = 0 ; x < arr.length-1-z; x++){
 
 -                         for (int y = x+1; y < arr.length-x-z; y++){
 
 -                                 //如果有重复的,就用复制粘贴的方法将重复的覆盖。
 
 -                                 if (arr[x] == arr[y]) {
 
 -                                         System.arraycopy(arr , y+1 , arr , y , arr.length-y-1);
 
 -                                         z++; y--;
 
 -                                 }                                        
 
 -                         }
 
 -                 }
 
 -                 //新建一个长度为(旧数组长度-复制次数)的数组,将不重复的元素存入。
 
 -                 int [] ne = new int [arr.length-z] ;
 
 -                 for (int i = 0  ; i<ne.length ; i++){
 
 -                         ne[i]=arr[i];
 
 -                 }
 
 -         //将去重后的数组返回。
 
 -         return ne;
 
 -         }
 
 - }
 
 
  复制代码 
欢迎大家测试以及提出更好的建议,比如简化书写或者提高效率。 
 
 |   
        
 
    
    
    
     
 
 |