java - 使用比较器对链表进行排序

标签 java sorting linked-list comparator

我有一个问题。请看一下我下面的代码, 当我想使用 collections.sort 对链表上的数据进行排序时,比较器将在 write (collections.sort (...)) 后工作,然后再次与比较器一起使用?

是否可以只使用比较器而不先使用 collection.sort (...) ?

  final LinkedList unsorted = new LinkedList(lList);

  Collections.sort(unsorted);

  Collections.sort(unsorted, 
            new Comparator<String>() { 
            @Override public int compare(String s1, String s2) { 
                return s1.length() - s2.length(); 
            } 
        } ); 
  System.out.println("LinkedList (after sorting using Comparator): " + unsorted);

有人可以给我一个建议,如何按方法分离比较器排序,我的意思是与主方法分开。

我想要的输出:

Unsorted [75, 2, 0, 1, 10, 25, 60, 40, 70, 2, 3, 4, 5, 6, 10, 15]
LinkedList (after sorting using Comparator): [0, 1, 2, 2, 3, 4, 5, 6, 10, 10, 15, 25, 40, 60, 70, 75]

谢谢

最佳答案

在您的代码中尝试一下。

 Integer[] ints = {75, 2, 0, 1, 10, 25, 60, 40, 70, 2, 3, 4, 5, 6, 10, 15};
 List<Integer> lList = Arrays.asList(ints);
 final LinkedList unsorted = new LinkedList(lList);

 Collections.sort(unsorted);

 System.out.println("LinkedList (after sorting using Comparator): " + unsorted);

关于java - 使用比较器对链表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46823264/

相关文章:

c++ - 添加一个元素到链表的末尾

java - Maven 更新 POM 中的依赖项

C++ STL vector 排序——破坏和归零

javascript - javascript 数组 foreach 排序

c# - 什么是双向链表的测试最佳排序算法

c++ - 链表,在最后插入 C++

java - 当我们在迭代 arraylist 时调用 list.remove 之后。元素没有被删除。我得到输出[2,4]。其背后的原因是什么?

java - IntelliJ 无法使用 ClassNotFoundException : org. apache.log4j.Priority 进行编译

java - 检测流中的重复组

c - C中二叉搜索树的删除