Java知识点整理(API) 集合 二进制 补码

本文详细介绍了Java集合的排序,重点讲解了如何使用Collections.sort()方法及其注意事项。此外,文章深入探讨了2进制和16进制的概念、转换规则,以及在计算机中的应用。还阐述了补码的原理,包括正负数的表示和溢出现象,有助于理解Java中整型数据的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.集合的排序:

        Collection为集合的工具类,里面定义了很多的静态方法用于操作集合

        Collections.sort(List list)方法:可以对list集合进行自然排序(从小到大),其要求LIst集合中的元素必须是可比较的,若不可比较则直接发生编译错误,不允许排序,判断是否可比较的标准为元素是否实现了Comparator接口,在实际的开发中,我们是不会让我们自己定义的类去实现Comparator接口的,因为这对我们的程序有侵入性

        侵入性:当我们调用某个API功能时,其要求我们为其修改额外的其他代码,这个现象就叫做侵入性,侵入性越强则越不利于程序的后期维护,应尽量避免

        建议使用重载的Collections.sort(List list , Comparator c)方法,可以通过Comparator来自定义比较规则

        

public static void main(String[] args) {
        List<Point> list = new ArrayList<>();
        list.add(new Point(5,8));
        list.add(new Point(15,28));
        list.add(new Point(99,66));
        list.add(new Point(45,23));
        list.add(new Point(64,9));
        list.add(new Point(1,4));
        System.out.println("list原始数据"+list);


        list.sort(new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                int len1 = o1.getX()* o1.getX()+o1.getY()* o1.getY();
                int len2 = o2.getX()* o2.getX()+o2.getY()* o2.getY();
                return len1-len2;//升序(前减后)
            }
        });

//        Collections.sort(list, new Comparator<Point>() {
//            @Override
//            public int compare(Point o1, Point o2) {
//                int len1 = o1.getX()* o1.getX()+o1.getY()* o1.getY();
//                int len2 = o2.getX()* o2.getX()+o2.getY()* o2.getY();
//                return len1-len2;//升序(前减后)
//                //return len2-len1;//降序(后减前)
//                //return o1.getX()- o2.getX();//按x坐标升序
//                //return o2.getY()-o1.getY();//按y坐标降序
//            }
//        });

        System.out.println("list排序后"+list);
public class Point {
    private int x;
    private int y;

    public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值