我有一个包含值的列表
我希望将列表整理为首字母升序和最后一个字母降序,以便排序列表为
我怎么能在java中做到这一点? Plz帮助。
答案 0 :(得分:1)
没有经过测试,这样的事情应该有效。
Collections.sort(list, new Comparator<String>() {
public int compare(String e1, String e2) {
int c = new Character(e1.chartAt(0)).compareTo( e2.charAt(0) );
if( c!=0 )
return c;
return new Character(e2.chartAt(e2.length()-1)).compareTo( e1.charAt(e1.length()-1) )
}
});
答案 1 :(得分:0)
您可以使用Collections.sort()
,然后指定升级或降序的Comparator
。
List<String> list = new ArrayList<String>();
Collections.sort(list, new Comparator<Item>() {
@Override
public int compare(String s1, String o2) {
return s1.compareTo(s2);
}
});
答案 2 :(得分:0)
可能看起来像这样。
public FirstLetterComparator implements Comparator<String>{
public int compare(String left, String right){
String leftFirst = left.substring(0,1);
String rightFirst = right.substring(0,1);
return left.compareTo(rightFirst) && ;
}
}
public LastLetterComparator implements Comparator<String>{
String leftLast = left.substring(left.length-2,left.length-1);
String rightLast = right.substring(right.length-2,right.length-1);
return leftLast.compareTo(rightLast);
}
List<String> yourList = new ArrayList<String>();
Collections.sort(yourList,new FirstLetterComparator());
Collections.sort(yourList,Collections.reverseOrder(new LastLetterComparator()));
有两种不同的比较器可以使它保持一致,你必须考虑一个符合你标准的比较器。