不就是排序吗? Arrays.sort

解决方案 »

  1.   

    用Set就没有重复了,然后再用Arrays.sort()排序
      

  2.   

    这样:
             List list = new ArrayList(10); 
    Integer a[]=new Integer[10];
    Random rand = new Random(); 
    System.out.println("The ArrayList Sort Before:"); 
    for (int i=0;i<10;i++ ) 

    a[i]=new Integer(Math.abs(rand.nextInt()/100000000)) ;
    list.add(a[i]); 
    System.out.println("a["+i+"]="+a[i]); 
    }
    Object[] o = list.toArray();
    Arrays.sort(o);
    list.clear();
    System.out.println("The ArrayList Sort After:"); 
    for (int i=0;i<10;i++ ) 

    System.out.println("a["+i+"]="+o[i]); 
    }
    如果他再问,让他去问JDK!
      

  3.   

    Arrays.sort(a);一行代码马上搞定啦
      

  4.   

    第一个要么查一次看有没,或者用set
    第二个问题:2.ArryList...调用remove()方法后要重新排序.影响性能!用LinkedList
      

  5.   

    还有一事不明..如果我用ArrayList去取数组中的值..如何保证取到的值不是重复的呢??
      

  6.   

    这好解释你可以试试list.add("1");
    list.add("1");
    可以看到list第一个元素和第二元素具有相同的值,List可以允许有重复的值出现。
    如果严格要求里面的值不同,就用MAP来存储。
      

  7.   

    int[] x={32,343,53,23,53,53,6342,43l234,,623};
    Set set=new TreeSet();
    for(int i=0;i<x.length;i++){
       set.add(new Integer(x[i]);
    }
    for(Iterator it=set.iterator();it.hasNext();){
       System.out.println(((Integer)it.next()).intValue());
    }
      

  8.   

    不是吧?华为要求的是算法,而不是api调用吧?什么sort不sort的
      

  9.   

    简单的实现快速排序,其实Arrays已经实现了
    static void swap(int[] arr,int i,int j){
    arr[i]=arr[i]^arr[j];
    arr[j]=arr[i]^arr[j];
    arr[i]=arr[i]^arr[j];
    }
    static void sort(int[] arr,int off,int len){
    if(len==1) return; int key=arr[off+(len>>1)]; int start=off;
    int end=off+len-1;

    while(true){
    //find a bigger from left
    while( start<end && arr[start]<key )
    start++;
    //find a smaller form right;
    while( start<end && arr[end]>key )
    end--;
    //swap;
    if(start<end){
    swap(arr,start,end);
    //is must
    start++;
    }
    else break;
    }

    sort(arr,off,start-off);
    sort(arr,start,len-start+off);
    }
      

  10.   

    ArrayList里面仅仅放的是对象的地址。跟对象的值无关。
    REMOVE方法影响性能,那是必然的哦!
      

  11.   

    都两年了,我一直都在入门……
    排序的方法多了,再说ArrayList本来也就实现了的,
    要从根本上解决重复数的问题,就不要用list,用map就可以了,当遇到重复时,会自动忽略的,
    路过,学习
      

  12.   

    我觉得,如果真的关心的话,那么就需要用数组(类似于C语言实现)里面可以用二分发这样就快多了。参考Arrays 即可
      

  13.   

    二分法(书上的样例):
    public class ArrayQSort { static void qsort(int array[], int first, int last) {
    int low = first;
    int high = last;
    if (first >= last)
    return;

    int mid = array[(first+last)/2];
    do { 
    while (array[low] < mid)
    low++;
    while (array[high] > mid)
    high--;

    if (low <= high) {
    int temp = array[low];
    array[low++] = array[high];
    array[high--] = temp;
    }
    } while (low <= high);

    qsort(array, first, high);
    qsort(array, low, last);
    } public static void main(String[] args) {
    int array[] = new int[1000];
    System.out.println("Before Sort");
    for (int i=0; i< array.length; i++) {
    array[i] = (int)(Math.random() * 1000.0);
    System.out.println(array[i]);
    }

    qsort(array, 0, array.length-1); System.out.println("After Sort");
    for (int i=0; i< array.length; i++) {
    System.out.println(array[i]);
    } }
    }
      

  14.   

    我晕 人家java专家写的排序给我们用
    为什么我们自己硬要去折腾呢
    多想想怎么去解决业务方面的问题
      

  15.   

    真是,何必重复发明车轮呢
    Arrays.sort() 不行吗