包含数据的列表的顺序为
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中添加所有列表值。
还有其他最佳方法可以对此进行排序。
答案 0 :(得分:1)
您可以使用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;
}
});