您当前的位置: 首页 >  Java

ITKEY_

暂无认证

  • 0浏览

    0关注

    732博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java温故而知新-比较器

ITKEY_ 发布时间:2021-01-21 21:39:57 ,浏览量:0

文章目录
  • Comparable接口
    • 观察ClassCastException
    • 实现对象数组的排序
  • Comparator接口
    • 使用 Comparator使用对象数组排序
    • 通过Lambda表达式实现简写
  • 教程出处

Comparable接口 观察ClassCastException
import java.util.Arrays;

class Book {
    private String title ;
    private double price ;
    public Book(String title, double price) {
        this.title = title ;
        this.price = price ;
    }
    public String toString() {
        return "【Book】图书名称:" + this.title + "、图书价格:" + this.price + "\n" ;
    }
    // setter、getter、无参构造,略 ...
}
public class YootkDemo {    // 李兴华编程训练营:yootk.ke.qq.com
    public static void main(String[] args) throws Exception {
        Book books [] = new Book[] {
                new Book("Java从入门到项目实战", 99.8) ,
                new Book("Python从入门到项目实战", 89.7) ,
                new Book("GO语言从入门到项目实战", 96.3)
        } ; // 提供有一个对象数组
        Arrays.sort(books); // 数组排序处理
        System.out.println(Arrays.toString(books)); // 实现对象数组的字符串转换
        
    }
}

在这里插入图片描述 在这里插入图片描述

实现对象数组的排序
package com.yootk.demo;

import java.util.Arrays;

class Book implements Comparable { // 这个类拥有排序支持
    private String title ;
    private double price ;
    public Book(String title, double price) {
        this.title = title ;
        this.price = price ;
    }
    public String toString() {
        return "【Book】图书名称:" + this.title + "、图书价格:" + this.price + "\n" ;
    }
    @Override
    public int compareTo(Book o) {
        if (this.price > o.price) {
            return 1 ;
        } else if (this.price  o2.getPrice()) {
            return 1 ;
        } else if (o1.getPrice() {
            if (o1.getPrice() > o2.getPrice()) {
                return 1 ;
            } else if (o1.getPrice()             
关注
打赏
1665243900
查看更多评论
0.0424s