0
点赞
收藏
分享

微信扫一扫

【JVM】OOM与调优(二)

晴儿成长记 2024-08-27 阅读 26

集合的排序

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>() {
            @Override
            public 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>() {
            @Override
            public 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>() {
            @Override
            public 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>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.length()-o2.length();
            }
        });
        System.out.println(list1);
    }

 

 

举报

相关推荐

0 条评论