import java.util.Arrays;
public class work07 {
public static void main(String[] args) {
//【难】去除数组{1,3,1,4,2,3,6,1,5}中的重复项,存入一个新的数组,并从大到小排序.
int []oldArr= new int[]{1,3,1,4,2,3,6,1,5};
int []newArr=deleteRepeatItem(oldArr);
System.out.println("旧数组:"+Arrays.toString(oldArr));
System.out.println("新数组:"+Arrays.toString(newArr));
}
public static int[] deleteRepeatItem(int[] oldArr){
//midArr数组用来记录oldArr中各数字出现的次数,他的大小是oldArr中最大值+1;
int midArr[]=new int[maxNumOfArray(oldArr)+1];
//为midArr数组赋值
for(int i=0;i<oldArr.length;i++){
midArr[oldArr[i]]++;
}
//定义一个count变量,用来作为新数组的长度。
int count=0;
for(int i=0;i<midArr.length;i++){
if(midArr[i]!=0)
count++;
}
int newArr[]=new int[count];
int k=0;
//逆序进行插入
for(int i=midArr.length-1;i>=0;i--){
if(midArr[i]!=0)
newArr[k++]=i;
}
return newArr;
}
public static int maxNumOfArray(int[] array){
//求数组最大值.
int max=array[0];
for(int i=1;i<array.length;i++){
if(max<array[i])
max=array[i];
}
return max;
}
}