有一个list!然后有一个顺序。怎么让这个list按照顺序重新组合呢?
例如
List list = new ArrayList();
list.add(new Integer(1));
list.add(new Integer(2));
list.add(new Integer(3));String order = "2,1,3";
然后希望能返回的list是,按照order的顺序来的list啊!
list.add(new Integer(2));
list.add(new Integer(1));
list.add(new Integer(3));

解决方案 »

  1.   

    直接把String order字符串转化成list不行吗?
      

  2.   

    String[] n=order.split(",");
    for(int i=0;i<n.length;i++)
    {
    list.add(Integer.valueOf(n[i]));
    }
      

  3.   


    import java.util.Arrays;
    import java.util.List;
    public class RegexTest {
    public static void main(String[] args){
    String str="2,1,3";
    String[] strArray=str.split(",");
    List<String> list=Arrays.asList(strArray);
    System.out.println(list);
      }
    }
    result:[2, 1, 3]
      

  4.   

    不好意思啊没说清楚!我的意思是有一个list!然后有一个顺序。怎么让这个list按照顺序重新组合呢?
    例如
    List list = new ArrayList();
    list.add(new xxxObj(1));
    list.add(new xxxObj(2));
    list.add(new xxxObj(3));String order = "2,1,3";
    然后希望能返回的list是,按照order的顺序来的list啊!
    xxxObj2是List的第1个元素
    xxxObj1是List的第2个元素
    xxxObj3是List的第3个元素也就是说需要一个方法
    参数1是list,
    参数2是order
    然后这个方法返回一个list这个list的顺序是按照order来的
      

  5.   


    public static List orderList( List list , String order){
    List newList = new ArrayList();
    String[] orders = order.split(",");
    for(int i = 0 ; i < orders.length ; i ++ ){
    if( Integer.parseInt(orders[i])<=list.size())
    newList.add(list.get(Integer.parseInt(orders[i])-1));

    }
    return newList;
    }
      

  6.   

    你取的例子中,String order = "2,1,3"; ,而List容器中
    list.add(new xxxObj(1)); 
    list.add(new xxxObj(2)); 
    list.add(new xxxObj(3)); ,是从下标0开始算的,所以你说按照order里数据的顺序会引发数组越界。List list = new ArrayList();
    list.add(new Integer(1)); 
    list.add(new Integer(2)); 
    list.add(new Integer(3)); 
    String str="2,1,0";
    String[] order = str.split(",");
    for(int j = 0 ; j < order.length;j++){
    int m = Integer.parseInt(order[j]);
              System.out.println(list.get(m));
    }返回的就是按照order数组的顺序
      

  7.   

    呵呵,怎么会想到用list来实现了?
      

  8.   


    import java.util.*;
    public class Order{
       public static List sort(List list,int[] indexes){
            int size=list.size();
            List result=new ArrayList(size);
    for(int i=0;i<size;i++){
        result.add(null);
    }
    for(int i=0;i<size;i++){
            result.set(i,list.get(indexes[i]-1));
    }
    return result;
       }
       public static void main(String rags[]){
           List list=new ArrayList();
           list.add(100);list.add(98);list.add(300);
       int[] indexes={2,1,3};
           list=sort(list,indexes);
           System.out.println(list);
       }
    }
      

  9.   

    额,为什么我想到的还是实现一个Element类,包含一个value和一个order,然后这些Element添加到一个List里,实现一个Comparator,排序,然后再生成一个新的List………………