java中如何对list集合进行排序

List<String> list = Arrays.asList("15%", "5%", "12%", "17%");

对这个list集合排序,从小到大排,输出5% 12% 15% 17%

img

img


用collects.sort()不行

你对排序理解错了。
集合中的元素是字符串类型,并不是数值类型。
对字符串排序是按照字典排序规则。


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

    }
}

img

有帮助望采纳^.^

list.sort()