java中的五种排序方法_用Java排序的五种有用方法

java中的五种排序方法

Java排序快速概述:

正常的列表:

private static List VEGETABLES = Arrays.asList("apple", "cocumbers", "blackberry");Collections.sort(VEGETABLES);output: apple, blackberry, cocumbers

反向排序:

private static List VEGETABLES = Arrays.asList("apple", "cocumbers", "blackberry");Collections.sort(VEGETABLES, Collections.reverseOrder());output: cocumbers, blackberry, apple

使用自定义比较器:

private class StringComparator implements Comparator {public int compare(Object o1, Object o2) {String so1 = (String) o1;String so2 = (String) o2;return so1.compareTo(so2);}}private static List VEGETABLES = Arrays.asList("apple", "cocumbers", "blackberry");Collections.sort(VEGETABLES, new StringComparator());output: apple, blackberry, cocumbers

元素排序:

private class Element implements Comparable {private String name;private Double atomicMass;@Overridepublic String toString() {final StringBuilder sb = new StringBuilder();sb.append("Element");sb.append("{name='").append(name).append('\'');sb.append(", atomicMass=").append(atomicMass);sb.append('}');return sb.toString();}public String getName() {return name;}public void setName(String name) {this.name = name;}public Double getAtomicMass() {return atomicMass;}public void setAtomicMass(Double atomicMass) {this.atomicMass = atomicMass;}public Element(String name, String mass, double atomicMass) {this.name = name;this.atomicMass = atomicMass;}public int compareTo(Element o) {return this.getAtomicMass().compareTo(o.getAtomicMass());}}ArrayList<Element> elements = new ArrayList<Element>();elements.add(new Element("Hydrogen", "H", 1.00794)); // Hydrogen 1.00794 amu Atomic Masselements.add(new Element("Iron", "Fe", 55.845));elements.add(new Element("Lithium", "Li", 6.941));elements.add(new Element("Lead", "Pb", 207.2));elements.add(new Element("Magnesium", "Mg", 24.305));Collections.sort(elements);   // Sort by Element

输出:

Element{name='Hydrogen', atomicMass=1.00794}Element{name='Lithium', atomicMass=6.941}Element{name='Magnesium', atomicMass=24.305}Element{name='Iron', atomicMass=55.845}Element{name='Lead', atomicMass=207.2}

按时间排序:

SimpleDateFormat formatter = new SimpleDateFormat("MMMM dd, yyyy", Locale.US);try {ArrayList<Date> holidays = new ArrayList<Date>();holidays.add(formatter.parse("May 31, 2010")); //  Memorial Dayholidays.add(formatter.parse("July 4, 2010")); //  Independence Dayholidays.add(formatter.parse("February 15, 2010")); //  Presidents Dayholidays.add(formatter.parse("September 6, 2010")); // Labor Dayholidays.add(formatter.parse("December 24, 2010")); // Thanksgiving Dayholidays.add(formatter.parse("July 5, 2010")); //  federal employees extra day off for July 4thholidays.add(formatter.parse("January 18, 2010")); //  Martin Luther King Dayholidays.add(formatter.parse("November 25, 2010")); // federal employees extra day off for Christmasholidays.add(formatter.parse("October 11, 2010")); // Columbus Dayholidays.add(formatter.parse("December 25, 2010")); // Christmas Dayholidays.add(formatter.parse("January 1, 2010")); // New Year's DayCollections.sort(holidays);  // Native sort for Date is chronological} catch (ParseException e) {e.printStackTrace();}

输出:

sorted:[Fri Jan 01 00:00:00 CET 2010, Mon Jan 18 00:00:00 CET 2010, Mon Feb 15 00:00:00 CET 2010, Mon May 31 00:00:00 CEST 2010, Sun Jul 04 00:00:00 CEST 2010, Mon Jul 05 00:00:00 CEST 2010, Mon Sep 06 00:00:00 CEST 2010, Mon Oct 11 00:00:00 CEST 2010, Thu Nov 25 00:00:00 CET 2010, Fri Dec 24 00:00:00 CET 2010, Sat Dec 25 00:00:00 CET 2010]

您可以在下面查看完整的简单类:

package com.tommyalf.personal.sorting;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;/**
* Created by IntelliJ IDEA.
* User: tommyalf
* Date: 1-dic-2010
* Time: 22.40.49
*/
public class SortDemo {private static List VEGETABLES = Arrays.asList("apple", "cocumbers", "blackberry");;public static void main(String args[]) {SortDemo sd = new SortDemo();sd.normalSort();sd.reverseSort();sd.stringComparator();sd.elementsSort();sd.chronologicalSort();}private void chronologicalSort() {SimpleDateFormat formatter = new SimpleDateFormat("MMMM dd, yyyy", Locale.US);try {ArrayList<Date> holidays = new ArrayList<Date>();holidays.add(formatter.parse("May 31, 2010")); // Memorial Dayholidays.add(formatter.parse("July 4, 2010")); // Independence Dayholidays.add(formatter.parse("February 15, 2010")); // Presidents Dayholidays.add(formatter.parse("September 6, 2010")); // Labor Dayholidays.add(formatter.parse("December 24, 2010")); // Thanksgiving Dayholidays.add(formatter.parse("July 5, 2010")); // federal employees extra day off for July 4thholidays.add(formatter.parse("January 18, 2010")); // Martin Luther King Dayholidays.add(formatter.parse("November 25, 2010")); // federal employees extra day off for Christmasholidays.add(formatter.parse("October 11, 2010")); // Columbus Dayholidays.add(formatter.parse("December 25, 2010")); // Christmas Dayholidays.add(formatter.parse("January 1, 2010")); // New Year's DaySystem.out.println("before sort:" + holidays);Collections.sort(holidays); // Native sort for Date is chronologicalSystem.out.println("sorted:" + holidays);} catch (ParseException e) {e.printStackTrace();}}private void elementsSort() {ArrayList<Element> elements = new ArrayList<Element>();elements.add(new Element("Hydrogen", "H", 1.00794)); // Hydrogen 1.00794 amu Atomic Masselements.add(new Element("Iron", "Fe", 55.845));elements.add(new Element("Lithium", "Li", 6.941));elements.add(new Element("Lead", "Pb", 207.2));elements.add(new Element("Magnesium", "Mg", 24.305));Collections.sort(elements); // Sort by ElementSystem.out.print("Elements sort by atomicMass value:");for ( Element e : elements ) {System.out.println(e);}}private void stringComparator() {Collections.sort(VEGETABLES, new StringComparator());System.out.print("StringComparator:");printList(VEGETABLES);}private void reverseSort() {Collections.sort(VEGETABLES, Collections.reverseOrder());System.out.print("ReverseSort:");printList(VEGETABLES);}private void normalSort() {Collections.sort(VEGETABLES);System.out.print("NormalSort:");printList(VEGETABLES);}private void printList(List vegetables) {for (int i = 0, n = vegetables.size(); i < n; i++) {if (i != 0) {System.out.print(", ");}System.out.print(VEGETABLES.get(i));}System.out.println();}private class StringComparator implements Comparator {public int compare(Object o1, Object o2) {String so1 = (String) o1;String so2 = (String) o2;return so1.compareTo(so2);}}private class Element implements Comparable<Element> {private String name;private Double atomicMass;@Overridepublic String toString() {final StringBuilder sb = new StringBuilder();sb.append("Element");sb.append("{name='").append(name).append('\'');sb.append(", atomicMass=").append(atomicMass);sb.append('}');return sb.toString();}public String getName() {return name;}public void setName(String name) {this.name = name;}public Double getAtomicMass() {return atomicMass;}public void setAtomicMass(Double atomicMass) {this.atomicMass = atomicMass;}public Element(String name, String mass, double atomicMass) {this.name = name;this.atomicMass = atomicMass;}public int compareTo(Element o) {return this.getAtomicMass().compareTo(o.getAtomicMass());}}
}

参考:来自Tommy Alf的JCG合作伙伴 Tommy Alf的五种有用的Java排序方法 -博客博客。

翻译自: https://www.javacodegeeks.com/2012/08/five-useful-ways-to-sorting-in-java.html

java中的五种排序方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353609.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

压缩vmware中的ubuntu系统(虚拟机瘦身大法)

压缩vmware中的ubuntu系统&#xff08;虚拟机瘦身大法&#xff09; 前提:你的虚拟机大小 < 你放置虚拟机的磁盘的剩余空间 1.在Termial(终端)里 运行"sudo vmware-toolbox"(需要root权限) 2.选择“shrink”选项卡 3.选中“/”&#xff0c;点击“shrink”按钮 4.完…

P2619 [国家集训队2]Tree I

P2619 [国家集训队2]Tree I 链接 分析&#xff1a; 为了确定白边选入的数量&#xff0c;所以给白边加一个权值&#xff0c;二分这个值&#xff0c;然后最小生成树。可以发现白边的数量虽这个值的增大而减小&#xff0c;满足单调性。 有一个问题&#xff1a;如果在二分过程中给白…

程序化JCMD访问

在线提出的问题表明&#xff0c;开发人员偶尔希望通过其Java应用程序访问通常从针对该应用程序外部运行JConsole &#xff0c; VisualVM或JDK命令行工具获得的信息类型。 以下是这类问题的一些示例&#xff1a; 如何以编程方式获取jmap直方图&#xff1f; 以编程方式从Java应…

Ubuntu瘦身与扩容运动

Ubuntu瘦身与扩容运动 2009-11-26 18:18:24| 分类&#xff1a; 计算机 | 标签&#xff1a; |字号大中小 订阅 Ubuntu瘦身与扩容运动 2009年08月14日 星期五 12:25大家都知道系统用久了就会慢慢变得臃肿,速度当然也就会有一些影响,所以当那些加速系统的方法不在奏效的时候…

认识jQuery

一、JavaScript库 把一些浏览器兼容性的代码或者需要常用的函数装在一个js文件里,封装了很多js代码的一个js文件就是一个库 二、jQuery 是一个JavaScript库&#xff0c;免费开源的&#xff0c;体积小&#xff0c;链式编程&#xff0c;隐式迭代&#xff0c;很多优点jQuery 的功能…

Axis2 WebService(配置、发布、调用)

from:http://www.lifeba.org/arch/java_axis2_webservice.html 准备工作 1、下载&#xff1a;axis2-1.5.4-bin.zip,axis2-1.5.4-war.zip 下载地址&#xff1a;http://axis.apache.org/axis2/java/core/ 2、环境变量设置 AXIS2_HOME E:\research\axis2-1.5.4-bin\axis2-1.5.4 J…

SmartPDA图片

转载于:https://www.cnblogs.com/xyyshishuaige/p/9098613.html

基于国家标准的 EndNote 输出样式模板

发表于 2013-05-26作者 Haoxian Zeng浏览 983 次from:http://cnzhx.net/blog/endnote-output-style-cnzhx/1EndNote 相当于一个数据库&#xff0c;将添加/导入的文献存档。需要引用文献的时候就从中选择一个插入到文档中&#xff0c;EndNote 会自动给你编号、在文档末尾建立相应…

工厂设计模式解决什么问题_使用工厂模式解决设计问题

工厂设计模式解决什么问题工厂设计模式是面向对象环境中最常用的模式之一。 再次来自“创意设计”模式类别&#xff0c;即有关对象创建的所有信息。 在某些情况下&#xff0c;对象的创建很复杂&#xff0c;可能需要某种程度的抽象&#xff0c;以便客户端代码不了解这些复杂性和…

shiro 认证思路

转载于:https://www.cnblogs.com/hwgok/p/9101232.html

Java 9对可选的补充

哇&#xff0c;人们对Java 9的Stream API增添了 真正的兴趣。 想要更多&#xff1f; 让我们看一下…… 可选的 可选::流 这不需要任何解释&#xff1a; Stream<T> stream();想到的第一个词是&#xff1a; 终于 &#xff01; 最后&#xff0c;我们可以轻松地从可选值流…

Matlab功率谱估计

(2012-03-16 12:22:15) 随机信号处理 * 随机变量分布特征量 均值mean 协方差矩阵cov 相关系数矩阵corrcoef [R, P] corrcoef(X)&#xff0c;P值用于检验相关性&#xff0c;越小越相关&#xff0c;0.05以下为显著相关。 * 相关函数估计 相关函数估计xcorr [c,lags] xcorr(…

OO第三次博客作业——规格

OO第三次博客作业——规格 一、调研结果&#xff1a; 规格的历史&#xff1a; 引自博文链接&#xff1a;http://blog.sina.com.cn/s/blog_473d5bba010001x9.html 传统科学的特点是发现世界&#xff0c;而软件的特点是构造世界。软件的最底层就是0&#xff0c;1&#xff0c;两个…

EndNote使用技巧之一--参考文献的导入

2012-11-20 11:54:15| 分类&#xff1a; 学术相关 | 标签&#xff1a; |字号大中小 订阅 一、怎样给课题组的其他人员共享我的library? 打开要共享的libirary→点击file→send to→compressed lirary→在 Send to Compressed Library 窗口确认储存路径与文件名&#xf…

5.29

查看linux系统中空闲内存/物理内存使用/剩余内存 free -m top命令 是Linux下常用的性能 分析工具 ps -eL |wc -l 查看进程数 ulimit -a 查看资源限制 echo DDS_ROOT 查看DDS设置的环境变量 tcpdump -i eth0 src 192.168.2.204 查看源IP204的eth0网卡的数据包接收情况 用vi进入…

primefaces_PrimeFaces在GlassFish 3.1.2.2上推动大气

primefacesPrimeFaces 3.4在三天前发布。 除了通常令人敬畏的新组件和更新组件外&#xff0c;它还包括新的PrimeFaces Push框架。 基于Atmosphere&#xff0c;这为您的应用程序提供了简单的推送机制。 这是在最新的GlassFish 3.1.2.2上配置和运行它的方法。 准备工作 像往常一…

相关的意义

第四章 相关系数 [内容导读]   本章的内容在课程中具有承上启下的重要作用。一方面&#xff0c;相关系数是反映与描述一组数据的概括性特征量数&#xff0c;只不过这里的数据是二元变量的观测数据。另一方面&#xff0c;对相关系数内容的理解与掌握&#xff0c;是建立在散点…

oo第三次作业

一、规格历史 最初的程序设计是直接面向机器的&#xff0c;代码编写困难、可读性差&#xff0c;当时对于软件开发的需求并不多。随着对于程序规模的需求&#xff0c;出现了面向过程的设计思想&#xff0c;开发者开始忽略底层实现&#xff0c;进行程序设计。对于面向过程设计思想…

帮助推动Java EE向前发展

如果您还记得我写的题为《 Java EE 8&#xff1a;当前状态是什么》的文章 &#xff0c;很明显&#xff0c;在过去的几个月中&#xff0c;Java EE的发展肯定已经放缓。 肯定有一些Java EE下的JSR具有比其他JSR更多的活动&#xff0c;但是自JavaOne 2015以来&#xff0c;整个Java…

35

1 转载于:https://www.cnblogs.com/venicid/p/9116284.html