用java语言实现将一个整形数组中的重复数字去掉,并对结果进行由大到小排序(使用数组实现)

如题所述

2楼的有点漏洞,我的如下
//TestArray
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

public class TestArray
{
public static void main(String[] args){
int[] a={1,1,2,10,10,22,22,2,3,3,4,5,6,6,7,8,9,8};
List list=new ArrayList();
Arrays.sort(a);
for(int i=a.length-1;i>0;i--){
if(a[i]!=a[i-1]){
list.add(a[i]);
}

}

list.add(a[0]);
System.out.print("重新整理后的顺序是");
for(int j=0;j<list.size();j++)
{
System.out.print(list.get(j)+" ");
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-11-26
你可以新建一个相同大小的目标数组
写for遍历数组并把最小的数取出来放进目标数组的0位
接着你要继续循环遍历数组并找到比刚刚放进目标数组的数大的数 这样下来你就可以在排序的同时避免相同的数

这个方法可能比较笨 但是比较好理解
第2个回答  2007-11-27
我已经调试成功:
要是还有什么问题给我留言吧

import java.util.*;
public class Sort{
public static void main(String[] args){
int[] arr={3,5,8,6,5,6};
List <Integer> map=new ArrayList<Integer>();
Arrays.sort(arr);
for(int i=arr.length-1;i>0;i--){
if(arr[i]!=arr[i-1]){
map.add(arr[i]);
}

}
if(arr[1]!=arr[0]){
map.add(arr[0]);
}
Iterator it=map.iterator();
while(it.hasNext()){

System.out.println((Integer)it.next());

}
}
}

E:\>javac Sort.java

E:\>java Sort
8
6
5
3