当前位置: 代码迷 >> J2SE >> 请问一个简单的数组排序有关问题
  详细解决方案

请问一个简单的数组排序有关问题

热度:46   发布时间:2016-04-24 00:54:00.0
请教一个简单的数组排序问题
引用
提问:B有10个水果,A有20个水果,要求排序
结果要求:A有20个水果,B有10个水果。
注意:不能出现A有10个水果的情况。

A,B是String型数组的元素,数量(10,20)是一个int型数组,如何保证在排序的同时,还保持如A,20、B,10这样的对应关系?

可以的话请尽可能采用数组的方法来做


------解决方案--------------------
Java code
    public static List<Integer> getList(List<Integer> list){         Collections.sort(list, new Comparator<Integer>() {                                     @Override                         public int compare(Integer o1, Integer o2) {                             return o1.intValue()-o2.intValue()  ;                         }                     });        return list ;            }        public static void main(String[] args) {    String s[] =  {"{2,3,4,5,21,8,12,23,7,6}","{2,3,4,5,21,8,12,23,7,6,12,13,14,15,211,81,121,231,71,61}"} ;    Map<Integer, List<Integer>> map = new HashMap<Integer, List<Integer>>() ;    for (int i = 0; i < s.length; i++) {        List<Integer> list = new ArrayList<Integer>() ;                  s[i] = s[i].substring(1, s[i].length()-1);         String[] ss = s[i].split(",") ;         for (int j = 0; j < ss.length; j++) {             Integer integer =    Integer.parseInt(ss[j]) ;             list.add(integer) ;         }         list =     getList(list) ;         map.put(i, list) ;    }            for (int i = 0; i < s.length; i++) {        s[i] ="{" ;        int j  = 0 ;        for (Integer integer : map.get(i)) {            if(j == 0)                s[i] = s[i]+integer.toString() ;            else                 s[i] = s[i]+","+integer.toString() ;            j= j+ 1;        }        s[i] = s[i]+"}" ;    }        System.out.println(s[0]+ s[1]);}
  相关解决方案