集合的排序
int类型的排序
* 集合的排序 * java.util.Collections是集合的工具类,提供了很多static方法用于操作集合 * 其中提供了一个名为sort的方法,可以对List集合进行自然排序(从小到大)
List<Integer> list = new ArrayList<>();Random random = new Random();for (int i = 0; i < 10; i++) {list.add(random.nextInt(100));}System.out.println(list);Collections.sort(list, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o2 - o1;}});System.out.println(list);//集合的乱序Collections.shuffle(list);System.out.println(list);
自定义排序
public class SortListDemo2 {public static void main(String[] args) {List<Point> list = new ArrayList<>();Random random = new Random();for (int i = 1; i < 10; i++) {list.add(new Point(random.nextInt(100), random.nextInt(100)));}System.out.println(list);/*sort方法在排序是要求集合元素必须实现:Comparable接口开发中我们定义的类不会去实现这个接口该排序功能对我们代码具有侵入性侵入性:当我们使用某给API功能时,其放过来要求我们为他实现接口或做某些继承并定义相关方法时,可以认定该API功能对我们代码有侵入性*///Collections.sort(list);//编译不通过Collections.sort(list, new Comparator<Point>() {@Overridepublic int compare(Point o1, Point o2) {int Olen1 = o1.getX() * o1.getX() + o1.getY() * o1.getY();int Olen2 = o2.getX() * o2.getX() + o2.getY() * o2.getY();return Olen1 - Olen2;}});System.out.println(list);}
}
//只用一次所以用匿名内部类
//class MyComparator implements Comparator{
// @Override
// public int compare(Object o1, Object o2) {
// return 0;
// }
//}
字符串排序
public static void main(String[] args) {List<String> list=new ArrayList<>();list.add("tom");list.add("durant");list.add("kobe");list.add("jam");list.add("mary");list.sort(new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {return o1.length()-o2.length();}});System.out.println(list);Collections.sort(list);System.out.println(list);List<String> list1=new ArrayList<>();list1.add("你好啊");list1.add("哇你好( •̀ ω •́ )");list1.add("你好");Collections.sort(list1, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {return o1.length()-o2.length();}});System.out.println(list1);}