作业5(继承、抽象、接口、多态)总结

输入:

next():读取到空格或换行符结束

nextline():读取到换行符结束

System.exit(0):结束程序

 while (num != 0)   //读取到num=0结束
  Scanner s = new Scanner(System.in);
        while(s.hasNext())  //当不在输入时结束

输出:

当需要保留小数时:

1.使用DecimalFormat类:DecimalFormat类可以帮助我们将数字格式化为指定的模式,以便于输出。例如,保留两位小数可以使用以下代码:

double d = 3.1415926;
DecimalFormat df = new DecimalFormat("#.00");
String result = df.format(d);
System.out.println(result); // 输出 3.14

2.使用String.format()方法:String.format()方法类似于C语言中的sprintf函数,它可以根据指定的格式化字符串格式化输出结果。例如,保留两位小数可以使用以下代码:

double d = 3.1415926;
String result = String.format("%.2f", d);
System.out.println(result); // 输出 3.14

当要四舍五入时:

Java中可以使用BigDecimal类的setScale()方法实现四舍五入。setScale()方法接受两个参数,第一个参数是保留小数位数,第二个参数是舍入模式,常用的有三种:

  1. RoundingMode.UP:向上舍入,即若保留位后一位大于等于5,则进一,否则舍去。
  2. RoundingMode.DOWN:向下舍入,即直接舍去保留位后面所有的数字。
  3. RoundingMode.HALF_UP:四舍五入,即若保留位后一位大于等于5,则进一,否则舍去。

例如,以下代码展示了如何将一个double类型的数值保留两位小数并进行四舍五入:

double num = 3.1415926;
BigDecimal bd = new BigDecimal(num);
double result = bd.setScale(2, RoundingMode.HALF_UP).doubleValue();
System.out.println(result);

排序:

对数组:

1.使用Arrays类的sort()方法排序:

int[] arr = {4, 2, 7, 1, 3};
Arrays.sort(arr);

2.使用Collections类的sort()方法排序:

Integer[] array = {4, 2, 7, 1, 3};
List<Integer> list = Arrays.asList(array);
Collections.sort(list);

对集合:

1.使用Collections类的sort()方法排序:

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
Collections.sort(list);

Comparator接口实现自定义排序:

  1. 对象数组自定义排序
  • 使用Comparator实现比较方法来进行自定义排序

    public class Student {
        private String name;
        private int age;
    
        public Student(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public int getAge() {
            return age;
        }
    
        // 自定义比较方法
        public static Comparator<Student> ageComparator = new Comparator<Student>() {
            @Override
            public int compare(Student s1, Student s2) {
                return s1.getAge() - s2.getAge();
            }
        };
    }
    
    // 调用自定义比较方法进行排序
    Student[] students = {new Student("Tom", 20), new Student("Jerry", 18), new Student("Mary", 21)};
    Arrays.sort(students, Student.ageComparator);
    

  • 集合自定义排序
  • 使用Comparator实现比较方法来进行自定义排序

    List<Student> students = new ArrayList<>();
    students.add(new Student("Tom", 20));
    students.add(new Student("Jerry", 18));
    students.add(new Student("Mary", 21));
    
    // 调用自定义比较方法进行排序
    Collections.sort(students, Student.ageComparator);
    

    Comparable接口实现自定义排序:

  • 在进行排序时,可以直接使用Java提供的Arrays.sort()Collections.sort()方法进行排序。接口定义如下:

    public interface Comparable<T> {
        public int compareTo(T o);
    }
    

    其中compareTo()方法用于比较当前对象和另一个对象的大小,返回值为int类型,根据返回值的正负来决定两个对象的大小。

    自定义排序需要实现Comparable接口,并重写compareTo()方法,然后在compareTo()方法中编写比较逻辑。以下是示例代码:

    public class Student implements Comparable<Student> {
        private String name;
        private int age;
    
        public Student(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public int getAge() {
            return age;
        }
    
        @Override
        public int compareTo(Student s) {
            // 按年龄从小到大排序
            if (this.getAge() < s.getAge()) {
                return -1;
            } else if (this.getAge() > s.getAge()) {
                return 1;
            }
            return 0;
        }
    }
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值