亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java中TreeMap排序的示例代碼

 更新時(shí)間:2017年11月20日 09:23:08   作者:AsuraDong  
本篇文章主要介紹了java中TreeMap排序的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

1. 定義TreeMap的排序方法

使用Comparator對(duì)象作為參數(shù)

需要注意的是:排序方法是針對(duì)鍵的,而不是值的。如果想針對(duì)值,需要更麻煩的一些方法(重寫(xiě)一些方法)

TreeMap<Screen,Integer> res = new TreeMap<Screen, Integer>(new Comparator<Screen>() {
      @Override
      public int compare(Screen screen1, Screen t1) { // 定義TreeMap的排序方法
        return screen1.compareTo(t1); // TreeMap的排序方法是:調(diào)用screen的比較方法
      }
    });

2. 定義里面的對(duì)象的比較方法

繼承Comparable接口

public class Screen implements Comparable{
  private double size,price;
  
  ...
  
  @Override
  public int compareTo(Object s){ // 定義比較方法
    Screen screen = (Screen)s;
    return this.price>screen.getPrice()?-1:1; // 返回負(fù)整數(shù)和正整數(shù)
  }
}

3. 所有代碼

按照Screen的價(jià)錢(qián)排序

Screen.java

import java.util.*;
import java.lang.Integer;

public class Screen implements Comparable{
  private double size,price;
  public Screen(){}
  public void setSize(double size){
    this.size = size;
  }
  public void setPrice(double price){
    this.price = price;
  }
  public double getSize(){ return this.size;}
  public double getPrice() { return this.price;}
  public void show(){
    System.out.println("size is: "+this.size+"; price is: "+this.price);
  }
  @Override
  public int compareTo(Object s){ // 定義比較方法
    Screen screen = (Screen)s;
    return this.price>screen.getPrice()?-1:1; // 返回負(fù)整數(shù)和正整數(shù)
  }
}

TestScreen.java

import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeMap;
import problem2.Screen;

public class TestScreen {
  final static int MAX_NUM = 8;
  public static void main(String []args){
    TreeMap<Screen,Integer> res = new TreeMap<Screen, Integer>(new Comparator<Screen>() {
      @Override
      public int compare(Screen screen1, Screen t1) { // 定義TreeMap的排序方法
        return screen1.compareTo(t1); // TreeMap的排序方法是:調(diào)用screen的比較方法
      }
    });
    double price, size;
    Scanner scan = new Scanner(System.in);
    for(int i=0;i<MAX_NUM;++i){
      Screen screen = new Screen();
      size = scan.nextDouble();
      price = scan.nextDouble();
      screen.setSize(size);
      screen.setPrice(price);
      res.put(screen,i);
    }
    for(Screen screen:res.keySet()){
      screen.show();
    }
    return ;
  }
}
//    測(cè)試樣例(輸入)
//    1 2
//    3 4
//    5 6
//    7 8
//    9 10
//    1 2
//    3 4
//    3 4

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java 單播、廣播、組播詳解及實(shí)例代碼

    java 單播、廣播、組播詳解及實(shí)例代碼

    這篇文章主要介紹了java 單播、廣播、組播詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • SpringBoot2.0解決Long型數(shù)據(jù)轉(zhuǎn)換成json格式時(shí)丟失精度問(wèn)題

    SpringBoot2.0解決Long型數(shù)據(jù)轉(zhuǎn)換成json格式時(shí)丟失精度問(wèn)題

    這篇文章主要介紹了SpringBoot2.0解決Long型數(shù)據(jù)轉(zhuǎn)換成json格式時(shí)丟失精度問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java monitor機(jī)制使用方法解析

    Java monitor機(jī)制使用方法解析

    這篇文章主要介紹了Java monitor機(jī)制使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java Hibernate中的多種查詢方式及示例

    Java Hibernate中的多種查詢方式及示例

    Hibernate提供了多種查詢方式,包括HQL查詢、SQL查詢、QBC查詢和Criteria查詢等。HQL查詢是基于面向?qū)ο蟮牟樵冋Z(yǔ)言,可以方便地進(jìn)行對(duì)象導(dǎo)航和多表查詢;SQL查詢?cè)试S用戶直接使用SQL語(yǔ)句進(jìn)行查詢;QBC查詢是基于Criteria的查詢,具有類(lèi)型安全和可重用性的優(yōu)勢(shì)
    2023-04-04
  • Java開(kāi)發(fā)框架spring實(shí)現(xiàn)自定義緩存標(biāo)簽

    Java開(kāi)發(fā)框架spring實(shí)現(xiàn)自定義緩存標(biāo)簽

    這篇文章主要介紹了Java開(kāi)發(fā)框架spring實(shí)現(xiàn)自定義緩存標(biāo)簽的詳細(xì)代碼,感興趣的小伙伴們可以參考一下
    2015-12-12
  • Java實(shí)戰(zhàn)權(quán)限管理系統(tǒng)的實(shí)現(xiàn)流程

    Java實(shí)戰(zhàn)權(quán)限管理系統(tǒng)的實(shí)現(xiàn)流程

    讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SpringBoot+MyBatis+AOP+LayUI+Mysql實(shí)現(xiàn)一個(gè)權(quán)限管理系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平
    2022-01-01
  • java判斷字符串相等的方法

    java判斷字符串相等的方法

    今天小編就為大家分享一篇java判斷字符串相等的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • java實(shí)現(xiàn)馬踏棋盤(pán)算法(騎士周游問(wèn)題)

    java實(shí)現(xiàn)馬踏棋盤(pán)算法(騎士周游問(wèn)題)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)馬踏棋盤(pán)算法,解決騎士周游問(wèn)題,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java 添加Word目錄的2種方法示例代碼詳解

    Java 添加Word目錄的2種方法示例代碼詳解

    目錄是一種能夠快速、有效地幫助讀者了解文檔或書(shū)籍主要內(nèi)容的方式。這篇文章主要介紹了Java 添加Word目錄的2種方法 ,需要的朋友可以參考下
    2019-06-06
  • Java中ArrayList類(lèi)的用法與源碼完全解析

    Java中ArrayList類(lèi)的用法與源碼完全解析

    這篇文章主要介紹了Java中ArrayList類(lèi)的用法與源碼完全解析,ArrayList類(lèi)通過(guò)List接口實(shí)現(xiàn),是Java中引申出的一種數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下
    2016-05-05

最新評(píng)論