谁能建议一种以降序排列以下对象arraylist的方法?

List<Object> = {/ele1/*,/ele1/subele1/*,/ele2/subele2/*,/ele2/*,/ele3/subele2/*,/ele3/*}


我需要输出为

{/ele1/*,/ele2/*,/ele3/*,/ele1/subele1/*,/ele2/subele2/*,/ele3/subele2/*}


使用元素长度是否可以实现?

最佳答案

您需要提供一个自定义比较器来对项目进行排序,该比较器使用元素长度作为比较,如下所示:

public static void main(String[] args) throws Exception {
    List<String> items = Arrays.asList("/ele1/*", "/ele1/subele1/*" ,"/ele2/subele2/*", "/ele2/*");
    Collections.sort(items, new MinLengthComparator());
    System.out.println(items);
}

private static class MinLengthComparator implements Comparator<String> {
    @Override
    public int compare(String o1, String o2) {
        return o1.length() - o2.length();
    }
}

关于java - 使用元素长度在对象数组中的升序/降序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27656896/

10-10 15:06