问题:排列规则:先按字符串数组里的元素不同依次输出:
如:
String[][] arr=new String[][]{{"1000","业务1"},{"1000","业务2"},{"1000","业务3"},{"2000","业务4"},{"2000","业务5"},{"3000","业务6"}};想要实现输出结果为(不用排序,只要按不同的业务排就行):1000,业务1
2000,业务4
3000,业务6
1000,业务2
2000,业务4
1000,业务3描述:假如有业务代码,1000,2000,3000。但是其中业务代码相同的有多个。想按不同的业务代码先排一遍,再按不同的业务代码排,一直排完。

解决方案 »

  1.   

    1000,业务1
    应该就是arr[0][0],arr[0][1]
      

  2.   

    不知lz要的是不是:
        final Map<String, List<String>> dict = new HashMap<String, List<String>>();
        for (int i = 0; i < arr.length; i++) {
          String code = arr[i][0];
          String name = arr[i][1];
          List<String> list = dict.get(code);
          if (list == null) {
            list = new ArrayList<String>();
            dict.put(code, list);
          }
          list.add(name);
        }
        Comparator<String[]> comparator = new Comparator<String[]>() {      @Override
          public int compare(String[] a1, String[] a2) {
            String code1 = a1[0];
            String code2 = a2[0];
            String name1 = a1[1];
            String name2 = a2[1];
            int index1 = dict.get(code1).indexOf(name1);
            int index2 = dict.get(code2).indexOf(name2);
            if (index1 == 0 && index2 == 0) {
              return code1.compareTo(code2);
            }
            return index1 - index2;
          }    };
        Arrays.sort(arr, comparator);
        for (String[] strings : arr) {
          System.out.println(Arrays.toString(strings));
        }[1000, 业务1]
    [2000, 业务4]
    [3000, 业务6]
    [1000, 业务2]
    [2000, 业务5]
    [1000, 业务3]
      

  3.   


    public static void main(String[] args) {
    String[][] arr=new String[][]{{"1000","业务1"},{"1000","业务2"},{"1000","业务3"},{"2000","业务4"},{"2000","业务5"},{"3000","业务6"}};
    Arrays.sort(arr, new Comparator() {
    public int compare(Object o1, Object o2) {
    String[] temp1 = (String[])o1;
    String[] temp2 = (String[])o2;
    return Integer.parseInt(temp1[0])-Integer.parseInt(temp2[0]);
    }

    });

    for(String[] strs : arr) {
    System.out.println(strs[0] + "," + strs[1]);
    }
    }
      

  4.   


    import java.util.*;public class Test {
    public static void main(String[] args) {
    String[][] arr = new String[][]{{"1000","业务1"},{"1000","业务2"},{"1000","业务3"},{"2000","业务4"},{"2000","业务5"},{"3000","业务6"}};
    List<String> str = new ArrayList<String>();
    List<String> result = new ArrayList<String>();
    String s;
    for(int i=0; i<arr.length; i++) {
    s = arr[i][0] + ":" + arr[i][1];
    str.add(s);
    }
    Iterator<String> iterator = str.iterator();
    String[] temp;
    String re = "";
    while(str.size() >= 0 && iterator.hasNext()) {
    s = iterator.next();
    temp = s.split(":");
    if(re.equals("")) {
    result.add(s);
    iterator.remove();
    } else if(re.equals(temp[0])) {
    continue;
    } else {
    result.add(s);
    iterator.remove();
    }
    if(!iterator.hasNext()) {
    iterator = str.iterator();
    }
    re = temp[0];
    }

    for(int i=0; i<result.size(); i++) {
    System.out.println(result.get(i));
    }
    }
    }运行后的结果是:
    1000:业务1
    2000:业务4
    3000:业务6
    1000:业务2
    2000:业务5
    1000:业务3
    不知道能不能满足楼主的要求!