import java.util.Comparator;public class SortExercise02 {public static void main(String[] args) {Book[] books=new Book[4];books[0] = new Book("红楼梦", 100);books[1] = new Book("西游记新版", 90);books[2] = new Book("青年文摘", 5);books[3] = new Book("Java从入门到放弃", 300);sort01(books, new Comparator() {@Overridepublic int compare(Object o1, Object o2) {double i1=(Double)o1;double i2=(Double)o2;int a1=(int) i1;int a2=(int) i2;return a1-a2;}});System.out.println("按照价格从低到高排序:");for (int i = 0; i < books.length; i++) {System.out.println(books[i]);}System.out.println("================");sort01(books, new Comparator() {@Overridepublic int compare(Object o1, Object o2) {double i1=(Double)o1;double i2=(Double)o2;int a1=(int) i1;int a2=(int) i2;return a2-a1;}});System.out.println("按照价格从高到低排序:");for (int i = 0; i < books.length; i++) {System.out.println(books[i]);}System.out.println("==================");sort02(books, new Comparator() {@Overridepublic int compare(Object o1, Object o2) {int i1=(Integer)o1;int i2=(Integer)o2;return i1-i2;}});System.out.println("按照书名长度从低到高排序:");for (int i = 0; i < books.length; i++) {System.out.println(books[i]);}System.out.println("==================");sort02(books, new Comparator() {@Overridepublic int compare(Object o1, Object o2) {int i1=(Integer)o1;int i2=(Integer)o2;return i2-i1;}});System.out.println("按照书名长度从高到低排序:");for (int i = 0; i < books.length; i++) {System.out.println(books[i]);}}public static void sort01(Book[] books, Comparator comparator){Book temp=null;for (int i = 0; i < books.length-1; i++) {for (int j=0;j< books.length-1-i;j++){if (comparator.compare(books[j].getPrice(),books[j+1].getPrice())>0){temp=books[j];books[j]=books[j+1];books[j+1]=temp;}}}}public static void sort02(Book[] books, Comparator comparator){Book temp=null;for (int i = 0; i < books.length-1; i++) {for (int j=0;j< books.length-1-i;j++){if (comparator.compare(books[j].getName().length(),books[j+1].getName().length())>0){temp=books[j];books[j]=books[j+1];books[j+1]=temp;}}}}
}class Book{private String name;private double price;public Book(String name, double price) {this.name = name;this.price = price;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}@Overridepublic String toString() {return "Book{" +"name='" + name + '\'' +", price=" + price +'}';}
}

按照价格,书名长度从大到小或从小到大排序,使用自制排序相关推荐

  1. ibm v3700添加硬盘_机 · 科普帖丨从大到小又从小到大,硬盘这些年是怎么过来的...

    硬盘作为电脑的存储媒介,自诞生起就有一段不凡的经历,硬盘既提供电脑需要处理的数据,也保存电脑的处理数据的结果,硬盘不是电脑的灵魂,但却是无法舍弃的躯体.今天ALIENWARE就为玩家科普一下,有着64 ...

  2. php 从大到小显示,vue.js,javascript_Vue 在列表渲染的时候,能排序显示么。 比如按价格从大到小排序,vue.js,javascript - phpStudy...

    Vue 在列表渲染的时候,能排序显示么. 比如按价格从大到小排序 // json { "data": [ { "name": "山鹰登山社" ...

  3. arraylist从大到小排序_JAVA零基础入门课程笔记----数组排序

    一.什么是数组 * 数组是一个变量,存储相同数据类型的一组数据: * 声明一个变量就是在内存空间划出一块合适的空间 * 声明一个数组就是在内存空间划出一串连续的空间 二.数组的基本要素 标识符:数组的 ...

  4. java 一千万数字排序_java 输入任意几个数字,怎样将他们从大到小排序?

    展开全部 public static void main(String[] args) { Scanner scan = new Scanner(System.in).e68a84e8a2ad3231 ...

  5. python range从大到小排列_python 十大经典排序算法

    人生苦短,我用python! 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存.常见的内部排序 ...

  6. arraylist从大到小排序_经典排序方法的python实现和复杂度分析

    1.冒泡排序: 冒泡排序算法的运作如下: 比较相邻的元素.如果第一个比第二个大(升序),就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.这步做完后,最后的元素会是最大的数 ...

  7. python选择排序从大到小_Python实现选择排序

    一.选择排序简介 选择排序(Selection sort)是一种简单直观的排序算法.选择排序首先从待排序列表中找到最小(大)的元素,存放到元素列表的起始位置(与起始位置进行交换),作为已排序序列,第一 ...

  8. 基于大中台小前台模式设计高并发电商架构

    孙玄 读完需要 8 分钟 速读仅需 3 分钟 孙玄,奈学教育创始人,曾任 58 集团技术委员会主席.转转首席架构师,一头飘逸长发,江湖人称"玄姐". 1 什么是大中台(业务中台.数 ...

  9. 冒泡排序 实现数据的由大到小排序

    操作要求 定义长度为6的整数数组 编写冒泡排序算法,实现数据由大到小的排序

最新文章

  1. C功底挑战Java菜鸟入门概念干货(一)
  2. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'rtjhyt' in 'field list'
  3. linux中html的图片显示不出来,如何在HTML中显示原始的rgb图像
  4. [administrative] windows 下制作USB启动盘的工具
  5. leetcode算法题--分隔链表★
  6. jquery 查询元素技巧
  7. 冲突、冲突域、广播、广播域、洪泛的基本概念
  8. 基于Linux的嵌入式文件系统构建与设计
  9. 如何快速将文件中的空格更换成逗号(图文详解)
  10. php实现的进度条功能示例,PHP 进度条函数的简单实例
  11. Atitit atitit 编程语言之道补充 s22 attilax 艾龙 著 1. 程序设计是个什么概念呢?历史发展 1 1.1. 连接电缆 2 1.2. 程序内置纸带打点 2 1.3. FORT
  12. SpreadJS V15.0 Update2 新特性一览
  13. 线性代数笔记5——平面方程与矩阵
  14. DongTai--被动型IAST工具部署体验
  15. vue3 解决getCurrentInstance 打包后线上环境报错问题
  16. java中入参_JAVA传参
  17. Windows API 关于控件的自绘——文本颜色、背景颜色、字体
  18. C语言----隐藏代码文件
  19. 使用PE启动U盘安装pfSense
  20. 智慧街道空间导引及创新平台

热门文章

  1. js字符串的大小写转换函数
  2. 无美术功底学计算机平面设计,美术在计算机平面设计中的应用
  3. ClickHouse创建MySql引擎报错(Code: 501)
  4. JDK1.9-网络编程入门
  5. 浏览器书签(bookmarks)结构格式分析
  6. 只需一台电脑,人人都可用 Python 实现新冠病毒分布实时追踪
  7. Gerrit代码Review入门
  8. 如何做好博物馆的防火安全工作?
  9. 服装企业信息化喝酒模式VS焦镜模式
  10. WPF对ListView的ListViewItem添加双击事件