繁体   English   中英

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

[英]How to sort an Array List in an order according to our requirement

包含数据的列表的顺序为

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;
            }

        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM