日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

用Java排序的五种有用方法

發布時間:2023/12/3 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用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排序的五种有用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。