Java ArrayList sort()方法根据指定的顺序对arraylist中的元素进行排序。
sort()方法的语法为:
arraylist.sort(Comparator c)
comparator - 指定arraylist的排序顺序
sort()方法不返回任何值。而是仅更改ArrayList中元素的顺序。
import java.util.ArrayList; import java.util.Comparator; class Main { public static void main(String[] args) { //创建 ArrayList ArrayList<String> languages = new ArrayList<>(); //添加元素到 ArrayList languages.add("Python"); languages.add("Swift"); languages.add("C"); languages.add("JavaScript"); System.out.println("未排序的 ArrayList: " + languages); //按升序对ArrayList排序 languages.sort(Comparator.naturalOrder()); System.out.println("排序后的 ArrayList: " + languages); } }
输出结果
未排序的 ArrayList: [Python, Swift, C, JavaScript] 排序后的 ArrayList: [C, JavaScript, Python, Swift]
在上面的示例中,我们使用了sort()方法对名为languages的ArrayList进行排序。注意这一行,
languages.sort(Comparator.naturalOrder());
在这里,Java Comparator接口的naturalOrder()方法指定元素以自然顺序(即升序)排序。
Comparator接口还提供了按降序对元素进行排序的方法。例如,
import java.util.ArrayList; import java.util.Comparator; class Main { public static void main(String[] args) { //创建 ArrayList ArrayList<String> languages = new ArrayList<>(); //添加元素到 ArrayList languages.add("Python"); languages.add("Swift"); languages.add("C"); languages.add("JavaScript"); System.out.println("未排序的 ArrayList: " + languages); //按升序对ArrayList排序 languages.sort(Comparator.reverseOrder()); System.out.println("排序后的 ArrayList: " + languages); } }
输出结果
未排序的 ArrayList: [Python, Swift, C, JavaScript] 排序后的 ArrayList: [Swift, Python, JavaScript, C]
在此,Comparator接口的reverseOrder()方法指定元素以相反的顺序(即降序)排序。
注意:Collections.sort()方法是对arraylist进行排序的更方便的方法。