Java 按特定顺序放入树形图

标签 java string collections treemap

我有一个大列表并将其放入树状图中。

然后我想把“ALL”放在列表的最顶部,但是在“ALL”之前有一个“AAA”

编辑:我希望对所有其他输入进行排序

List     ->    List
-----          -----
AAA            AAA
BBB            ALL
CCC            BBB
               CCC

我可以使用 arrayList 或其他东西,但我想知道 如果有办法控制这种情况。

最佳答案

一个选择是构建一个自定义比较器,它始终将“ALL”一词排在其他所有内容之前:

TreeMap<String, T> myMap = new TreeMap<String, T>(new Comparator<String>() {
    public int compare(String lhs, String rhs) {
        /* See which of the inputs, if any, are ALL. */
        bool oneAll = lhs.equals("ALL");
        bool twoAll = rhs.equals("ALL");

        /* If both are ALL or neither are ALL, just do a normal comparison. */
        if (oneAll == twoAll) {
            return lhs.compareTo(rhs);
        }
        /* Otherwise, exactly one of them is ALL.  Determine which one it is and
         * react accordingly.
         */
        else if (oneAll) {
            return -1;
        } else {
            return +1;
        }
    }
});

这将按升序对所有内容进行排序,但优先考虑 “ALL” 高于其他所有内容。

希望这对您有所帮助!

关于Java 按特定顺序放入树形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11002609/

相关文章:

java - 如何为 Web 应用程序配置 apache http 客户端 v3.0(多线程)

java - 循环结束后不打印字符串

java - 使用递归查找字符串中最长的回文

python - 多行正则表达式与迭代器兼容吗?

java - 检索 HashMap 中的列表。

java - 如何在java中使用对象列表的列表?

c# - 这个正则表达式如何找到三角形数?

java - 在 java.awt.Robot.keyPress()/mousePress() 之后重新获得焦点

Python:如何检查字符串是否包含列表中的元素并取出该元素?

java - Collection<E>&Queue<E>&BlockingQueue<E> 接口(interface)中的 add(E e) 方法