• 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()); } } }
  • 相关阅读:
    [SCOI2009] Windy数
    [P1361] 小M的作物
    Wannafly Camp 2020 Day 2E 阔力梯的树
    2017百越杯反序列化writeup
    大美西安writeup
    Thinkphp的SQL查询方式
    Thinkphp的CURD
    记一次拿webshell踩过的坑(如何用PHP编写一个不包含数字和字母的后门)
    ThinkPHP的输出和模型使用
    ThinkPHP的运行流程-2
  • 原文地址:https://www.cnblogs.com/yueliming/p/3058916.html
Copyright © 2020-2023  润新知