java - 如何根据我们的要求对数组列表进行排序

标签 java arrays sorting collections jquery-ui-sortable

包含数据的列表的顺序为

List<String> list = new ArrayList<String>(); 
list.add('R'); 
list.add('L');
list.add('H');
list.add('A');

如果我必须按 L、H、R、A 的顺序显示列表。

我尝试将每个列表值添加到 LinkedHashMap 中,并根据要求将所有列表值添加到另一个 Linked Hashmap 中。

还有其他最好的方法可以解决这个问题吗?

最佳答案

您可以使用 java.util.Collections.sort 方法,传递数组和比较器:

Collections.sort(list,new Comparator<String>(){

        @Override
        public int compare(String s1, String s2) {
            // write your code to decide the order, return negative value for element that you want to appear before another element, zero for equality. same at compareTo works.
        }

    });

因此,如果您只想对 LRHA 字母进行排序,您可以执行以下操作(我假设任何其他字符串都将放置在末尾)

        List<String> list = new ArrayList<String>(); 
        list.add('R'); 
        list.add('L');
        list.add('H');
        list.add('A');    

        Collections.sort(list,new Comparator<String>(){

            @Override
            public int compare(String s1, String s2) {
                if(s1 == null)
                    return 2;
                if(s2 == null)
                    return -2;

                if(s1.equals("L")) return -1;
                if(s2.equals("L")) return 1;
                if(s1.equals("H")) return -1;
                if(s2.equals("H")) return 1;
                if(s1.equals("R")) return -1;
                if(s2.equals("R")) return 1;
                if(s1.equals("A")) return -1;
                if(s2.equals("A")) return 1;
                return 2;
            }

        });

关于java - 如何根据我们的要求对数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29420255/

相关文章:

java - 导出一对纬度和经度之间的任意点纬度和经度

ios - 使用 UIImage 从数组中删除索引

javascript - 数组过滤器的异步或 promise 条件

java - 计算数组中的数字

c++ - 使用 Qt/C++ 的排序算法 - 对结构的 QList 进行排序

java - JOptionPane中的猜数字游戏,JPanel不显示(Java)

java - 使用 Java 的通用访问卡 (CAC) 身份验证

java - 将自定义 ArrayList 转换为 LinkedHashSet

javascript - 如何销毁javascript中的对象?

arrays - 在数组中的特定索引处插入元素