zoukankan      html  css  js  c++  java
  • comparator的用法

      在mapreduce中,用户提交的作业放到Map容器中,那么它是怎样对其中的job进行排序的呢?

      最重要的是我们首先要写好自己的Comparator,下面我通过一个简单的例子来进行分析容器中元素排序过程。

    1.   首先,建一个Job类用来描述用户提交的作业。
      1.  1 package com.comparator.test;
         2 
         3 public class Job {
         4     private Long startTime;
         5 
         6     public Long getStartTime() {
         7         return startTime;
         8     }
         9 
        10     public void setStartTime(Long startTime) {
        11         this.startTime = startTime;
        12     }
        13 }
    2. 编写测试类。    
    package com.comparator.test;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    
    
    public class MyComparatorTest {

    //实现自己的Comparator,只是根据job的开始时间进行排序
    static final Comparator<Job> MY_COMPARATOR = new Comparator<Job>() { public int compare(Job o1, Job o2) { if(o1.getStartTime()<o2.getStartTime()){ return -1; }else{ return 1; } } }; public static void main(String args[]){


    //初始化job,并放入到一个容器中 List
    <Job> jobs= new ArrayList<Job>(); Job job1= new Job(); job1.setStartTime(System.currentTimeMillis()); jobs.add(job1); Job job2= new Job(); job2.setStartTime(System.currentTimeMillis()+9); jobs.add(job2);
    //用自己编写的Comparator对jobs容器进行排序 Collections.sort(jobs, MY_COMPARATOR);
    for(Job job:jobs){ System.out.println(job.getStartTime()); } } }
  • 相关阅读:
    php 文件直接下载
    公钥、私钥与数字签名
    php swoole 安装与使用
    06-Ubuntu18.04&16.04安装PHP(7.0|7.1|7.2|7.3)
    解决nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)错误
    浏览器禁用返回按钮
    js 鼠标放上选中
    vue 组件切换
    VSCode常用设置
    How to use electron-builder in a Vue project
  • 原文地址:https://www.cnblogs.com/yueliming/p/3058916.html
Copyright © 2011-2022 走看看