按命中数对2D数组进行排序

时间:2013-12-16 17:16:55

标签: java arrays multidimensional-array jtable

我有两个ArrayLists:

数组01:

ArrayList<String> uniqueFiletypes --> which contains unique filetypes (e.g .zip etc..)

数组02:

ArrayList<Integer> countFiletypes --> which counts how many of each filetype there is, for example 8 .zip's

要直接跳到问题:

我需要做一些“排名”,这意味着最高的文件类型数量排在第一位等等......

另一个问题:它必须是一个Object [] [](支持JTable),因此可以很容易地显示结果。

输出示例:我有8个.zips,5个.java和2个.docx

Object[][] = {{"1", ".zip", "8"},{"2", ".java", "5"}, {"3", ".docx", "2"}}

{PLACE,FILETYPE,COUNT}

1 个答案:

答案 0 :(得分:0)

  • 第一种方法:当您使用JTable时,请使用demo example of tutorial page

  • 中显示的TableRowSorter
  • 第二种方法:假设您不仅需要JTable

    Object[][] array = {{"1", ".zip", "8"},{"2", ".java", "5"}, {"3", ".docx", "2"}};
    List<Object[]>data = Arrays.asList(array);
    Comparator<Object[]>comparator = new Comparator<Object[]>() {
    
      @Override
      public int compare(Object[] o1, Object[] o2) {
    
        return ((String)o1[2]).compareTo((String)o2[2]);
      }
    
    
    };
    
    Collections.sort(data, Collections.reverseOrder(comparator));
    
    array = (Object[][]) data.toArray();