import java.util.*;
public class S 
{
public static void main(String[] args) 
{
List a = new ArrayList();
    a.add(9);
    a.add(13);
    a.add(5);
    a.add(7);
    a.add(24);
    a.add(28);
    a.add(20);
    a.add(41);                          
    for(int i = 0; i < a.size(); i++)
    {
     for(int j = 0; j < a.size() - i - 1 ; j++ )
     {
     int temp = 0;
     if( (Integer)a.get(j) > (Integer)a.get(j+1))
     {     
     temp = (Integer)a.get(j);
     a.set((Integer)a.get(j+1) , (Integer)a.get(j));
     a.set( temp , (Integer)a.get(j + 1));
     }
     }          
    }
    for(int i = 0; i < a.size(); i ++ )
    {
     System.out.println(a.get(i));
    }
    
}
}

解决方案 »

  1.   

    package test;import java.util.ArrayList;
    import java.util.List;
    public class TestOne {
    public static void main(String[] args) throws Exception{

    List a = new ArrayList();
    a.add(9);
    a.add(13);
    a.add(5);
    a.add(7);
    a.add(24);
    a.add(28);
    a.add(20);
    a.add(41);   
    for(int i = 0; i < a.size(); i++)
    {
    for(int j = 0; j < a.size() - i - 1 ; j++ )
    {
    int temp = 0;
    if( (Integer)a.get(j) > (Integer)a.get(j+1))

    temp = (Integer)a.get(j);
    a.set((Integer)a.get(j+1) , (Integer)a.get(j));
    a.set( temp , (Integer)a.get(j + 1));
    }

    }
    for(int i = 0; i < a.size(); i ++ )
    {
    System.out.println(a.get(i));
    }
      

    }
    抛出异常,或者用try catch 捕获异常
      

  2.   

    看起来你这是一个冒泡排序算法的实现吧,问题出在这里temp = (Integer)a.get(j);
    a.set((Integer)a.get(j+1) , (Integer)a.get(j));
    a.set( temp , (Integer)a.get(j + 1));交换a的第j和j+1个元素的正确写法是:
    temp = (Integer)a.get(j);
    a.set(j , (Integer)a.get(j));
    a.set(j+1,temp);
      

  3.   

    上面粗心打错了一点,修正如下:temp = (Integer)a.get(j);
    a.set(j , (Integer)a.get(j+1)); //此处修正
    a.set(j+1,temp);
      

  4.   

    http://
      

  5.   

    debug 跟踪下就知道了
    集合排序 直接用sort  如果里面是对象 可以实现Comparable接口去比较