有一个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));
例如
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));
for(int i=0;i<n.length;i++)
{
list.add(Integer.valueOf(n[i]));
}
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]
例如
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来的
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;
}
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数组的顺序
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);
}
}