小编典典

你有两种方法可以使用Arrays实用程序类

实现一个Comparator并将数组与比较器一起传递给sort方法,该方法将其作为第二个参数。

在对象所属的类中实现Comparable接口,并将数组传递给仅采用一个参数的sort方法。

class Book implements Comparable {

public String name, id, author, publisher;

public Book(String name, String id, String author, String publisher) {

this.name = name;

this.id = id;

this.author = author;

this.publisher = publisher;

}

public String toString() {

return ("(" + name + ", " + id + ", " + author + ", " + publisher + ")");

}

@Override

public int compareTo(Book o) {

// usually toString should not be used,

// instead one of the attributes or more in a comparator chain

return toString().compareTo(o.toString());

}

}

@Test

public void sortBooks() {

Book[] books = {

new Book("foo", "1", "author1", "pub1"),

new Book("bar", "2", "author2", "pub2")

};

// 1. sort using Comparable

Arrays.sort(books);

System.out.println(Arrays.asList(books));

// 2. sort using comparator: sort by id

Arrays.sort(books, new Comparator() {

@Override

public int compare(Book o1, Book o2) {

return o1.id.compareTo(o2.id);

}

});

System.out.println(Arrays.asList(books));

}

输出量

[(bar, 2, author2, pub2), (foo, 1, author1, pub1)]

[(foo, 1, author1, pub1), (bar, 2, author2, pub2)]

2020-03-09

java对象数组排序_如何在Java中对对象数组进行排序?相关推荐

  1. java 正则表达式 开头_如何在Java中修复表达式的非法开头

    java 正则表达式 开头 您是否遇到过这个令人难以置信的错误,想知道如何解决它? 让我们仔细阅读一下,研究如何解决表达式Java非法开头错误. 这是一个动态错误,这意味着编译器会发现某些不符合Jav ...

  2. java soap 头_如何在Java中添加Soap标头

    我有一个来自oracle的NO.net Web服务,要访问,我需要添加soap标头.如何在Java中添加soap标头? Authenticator.setDefault(new ProxyAuthen ...

  3. java实现递归算法_如何在Java中实现二进制搜索算法而无需递归

    java实现递归算法 by javinpaul 由javinpaul 流行的二进制搜索算法的迭代实现,用于在排序数组中查找元素. (An Iterative implementation of the ...

  4. java tostring格式_如何在Java中使用toString()获得数字的字符串表示形式?

    toString()方法中的一个重要方法对象类,它可用于返回一个对象的字符串或文本表示.对象类的toString()方法返回一个字符串,作为指定对象类的名称,后跟" @ "符号和对 ...

  5. java插入图片_如何在java窗体程序中添加图片

    打开eclipse,创建一个java工程项目,创建完后在src下新建一个类Window,由于要插入图片,所以还在工程目录下创建一个文件夹imgs,里面放了一张60*60的图片,创建后的工程目录和图片, ...

  6. java安卓计时器_如何在android中设置计时器

    通过java.util.Timer和java.util.TimerTask使用计时器的标准Java方法在Android中运行良好,但是你应该知道这个方法创建了一个新线程. 您可以考虑使用非常方便的Ha ...

  7. java jcombobox长度_如何在JToolBar中设定JComboBox的大小?

    如何在JToolBar中设定JComboBox的大小? 我设计了一个JToolBar,并且在上边添加了一个JComboBox,可是我发现这个JComboBox长度无法控制,它将JToolBar上剩余空 ...

  8. java redis 缓存_如何在 Java 中实现一个 redis 缓存服务

    缓存服务的意义 为什么要使用缓存?说到底是为了提高系统的运行速度.将用户频繁访问的内容存放在离用户最近,访问速度最快的地方,提高用户的响应速度.一个 web 应用的简单结构如下图. web 应用典型架 ...

  9. java 子类化_如何在Java中安全地进行子类型化

    你可能还记得,Liskov Substitution原则是关于承诺和合同的.但究竟是什么承诺?这是关于保证子类型的安全性.这意味着子类型必须保证有人可以从超类型中合理地推断出来.它必须具有传递关系.在 ...

最新文章

  1. bootstrap跟vue冲突吗_知道微服务,但你知道微前端吗?
  2. WPF:WPF显示PDF文档 之 编译 MoonPdfLib库
  3. 自己服务器上部署APP应用(安卓和IOS版),下载页面的代码,以及IOS的xxx.plist文件的建立
  4. Oracle中查看最近被修改过的表的方法
  5. usb4-配置usb触摸屏
  6. 【python 8】python 装饰器
  7. cobbler基础安装
  8. .NET Core + Spring Cloud:服务注册与发现
  9. ajax提交数据被截断的问题
  10. 老李推荐: 第3章2节《MonkeyRunner源码剖析》脚本编写示例: MonkeyDevice API使用示例 1...
  11. python做些什么项目内容_现在比较流行的python做什么项目最适合?
  12. 记录centos7下tomcat部署war包过程
  13. Linux电源管理-Suspend/Resume流程
  14. JMF实现对USB视频数据捕捉和应用
  15. 文件夹加密软件排行榜
  16. SilverLight:”无法启动调试--未安装 Silverlight Developer 运行时。请安装一个匹配版本”的解决方案。
  17. Java词法分析器的设计与实现
  18. 谷歌支付服务端服务账号订单校验
  19. python 取整求余函数
  20. 李白打酒*C语言简易版(递归)

热门文章

  1. win2003服务器服务正在运行,win2003提示“在系统启动时至少有一个服务或驱动程序产生错误”Windows服务器操作系统 -电脑资料...
  2. 【Go】学生教务管理系统【无界面 / 单机版】(一)
  3. Jsoup Cookie登录处理
  4. ajax请求参数datatype,ajax datatype参数会遇到什么问题?
  5. nginx 代理tcp长连接短连接配置
  6. SSE:使用HTTP做服务端数据推送的技术及其他通信技术
  7. clickonce 部署能cs程序_配置 ClickOnce 信任提示行为 - Visual Studio | Microsoft Docs
  8. java 路径拼接_Html图片路径拼接参数实现打印导出
  9. SWT/JFACE表格Table可编辑
  10. APP开发外包注意事项有哪些?