List<String> list = Arrays.asList("15%", "5%", "12%", "17%");
对这个list集合排序,从小到大排,输出5% 12% 15% 17%
你对排序理解错了。
集合中的元素是字符串类型,并不是数值类型。
对字符串排序是按照字典排序规则。
List<String> list = Arrays.asList("15%", "5%", "12%", "17%");
Collections.sort(list,new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return Integer.parseInt(o1.replaceAll("[^0-9]*", "")) -
Integer.parseInt(o2.replaceAll("[^0-9]*", ""));
}
});
System.out.println(list);
import java.util.*;
public class Test34 {
public static List<String> sort(List strings){
String[] objects = (String[]) strings.toArray();
for (int i = 0; i < objects.length; i++) {
for (int j = 0; j < objects.length; j++) {
if(Integer.parseInt(objects[i].substring(0,objects[i].length()-1))<Integer.parseInt(objects[j].substring(0,objects[j].length()-1))){
String temp=objects[i];
objects[i]=objects[j];
objects[j]=temp;
}
}
}
List<String> strings1 = Arrays.asList(objects);
return strings1;
}
public static void main(String[] args) {
List<String> strings = Arrays.asList("15%", "5%", "12%", "17%");
List<String> sort = Test34.sort(strings);
System.out.println(sort);
}
}
有帮助望采纳^.^
list.sort()