现在有两个向量,一个为数字向量A(可排序且有重复数字,比如1,2,2,4等),另一个是字符向量B(不可排序,没有重复值,如A,B,C,D等),并且两个向量的SIZE相同,且两个向量对应的值一一对应,我想对向量A进行排序,输出对应的B向量中的值,并且对应于A中相同数字的B向量中的值组成一个整体(如向量vector),不知道如何处理,求助!HELP ME?

解决方案 »

  1.   

    java.util.Collections.sort(List l)
      

  2.   

    class A{int a;char b;}List aList=new ArrayList();
    for(..numVector..//遍历)
    {
       A=new A();
       A.a=numVector.get(i).intValue();
       A.b=charVector.get(i).charAt(0);
       aVector.add(a);
    }Collections.sort(aList,new Comparator{
         public int compare(Object o1, Object o2)
         {
              A a1=(A)o1;
              A a2=(A)o2;
              return a1.a-a2.a;
         }
       });
      

  3.   

    return a1.a-a2.a;
    -------------
    这样的写法在thinking in java里是不提倡的,有可能导致溢出,比如一个大的int减去一个绝对值很大的负数,结果超出int范围而溢出
    所以更好的写法是采用> < ==等比较运算符
      

  4.   

    输入的时候,两个向量是一对一
    1 A
    2 B
    2 C
    4 D 
    输出时,两个向量也是一对一
    1 A
    2 {B,C}
    4 D  
    本人的目标主要是达到上述要求
      

  5.   

    to  liu_you(滴水藏海) List aList=new ArrayList();这句是干吗用的
    还有 aVector.add(a);  里面的a代表什么,aVector是不是上面定义的aList???
      

  6.   

    这个
    用hashTable储存key-value对,如果读到key重复,那么 valueNew=value1+value2
    然后对有序向量排序,按其排序后顺序输出对应key-value值,遇到key重复只输出一遍。