首页 > 代码库 > 应用Java去除一维数组中的重复数字,且不借助任何java工具类。

应用Java去除一维数组中的重复数字,且不借助任何java工具类。

  昨天有个朋友突然问了我这个问题,一时我竟然无言以对,刚开始就是局限于没办法记录重复位置,作为刚刚接触java语言的菜鸟,绞尽脑汁地一最笨的方法实现了,还望大神指点出更好的方法。

public class Test01 {

public static void main(String[] args) {
test1();
}

/**
* 方法名: test1
* 方法描述:一位数组去除重复的数字,不借助java工具类,方法比较笨拙,还请高手指点
* @param: Test01
* @return: void
* @Author: IT黄鹂
* @create Date: Dec 9, 2014
*/
private static void test1(){
int[] arry1 = {1,2,1,3,1,23,14,12,321,2,5,5,1,32,2,13,12};

//统计重复的数字
boolean[] repeat = new boolean[arry1.length];
for(int i = 0;i<arry1.length;i++ ){
for(int j = 0;j<arry1.length;j++){
if(i>j&&arry1[i]==arry1[j]){//如果该数字和他以后的每个数字相比较如果相等将repeat[j]位置置为true
repeat[j]=true;
}
}
}
//计算第二个数组的长度
int lenth = 0;
for(int i = 0;i<repeat.length;i++){
if(repeat[i]==false)lenth++;
}

int[] arry2 = new int[lenth];//定义新数组去接收非重复数字
int temp = 0;//记录第二个数组的长度
//将所有的数字转移到新的数组中去
for(int i = 0;i<arry1.length;i++){
if(repeat[i]==false){
arry2[temp]=arry1[i];
temp++;
}
}
//打印结果验证
for(int s:arry2){
System.out.print(s+",");
}
System.out.println("共有重复数字"+(repeat.length-lenth));

}
}

应用Java去除一维数组中的重复数字,且不借助任何java工具类。