美文网首页bigdata
9. 二次排序

9. 二次排序

作者: 百炼 | 来源:发表于2018-12-28 22:14 被阅读0次
package mapreduce;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
import java.util.stream.Collectors;

public class DateTemperatureTest {
    public List<DateTemperature> dateTemperatureList;

    @Test
    public void test() {
        Map<String, List<DateTemperature>> result = new HashMap<>();
        dateTemperatureList.forEach(
                v -> {
                    List<DateTemperature> dateTemperatureList = result.get(v.getYearOfMonth());
                    if (dateTemperatureList == null) {
                        dateTemperatureList = new ArrayList<>();
                    }
                    dateTemperatureList.add(v);
                    result.put(v.getYearOfMonth(), dateTemperatureList);
                }
        );
        List<String> list = new ArrayList<>();
        Map<String,List<Integer>> tempMap = new HashMap<>();
        result.forEach((k, v) -> {
            v.sort(Comparator.comparing(DateTemperature::getYearOfMonth).thenComparing(DateTemperature::getTemperature));
            tempMap.put(k,v.stream().map(DateTemperature::getDay).collect(Collectors.toList()));
            list.add(k);
        });

        list.sort(String::compareTo);
        list.forEach(
                v -> {
                    System.out.println(v + ":" + tempMap.get(v));
                }
        );
    }

    @Before
    public void getWordsAsList() {
        String content;
        try {
            content = new String(Files.readAllBytes(Paths.get(this.getClass().getResource("/temp.txt").toURI())), StandardCharsets.UTF_8);
            final List<String> lines = Arrays.asList(content.split("\r\n"));
            dateTemperatureList = lines.stream().map(DateTemperature::form).collect(Collectors.toList());
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }

    @After
    public void tearDown() {

    }
}

相关文章

  • 9. 二次排序

  • 排序算法

    1.冒泡排序2.选择排序3.插入排序4.快速排序5.堆排序6.希尔排序7.归并排序8.计数排序9.桶排序10.基数...

  • iOS - 排序算法

    1.冒泡排序 2.选择排序 3.桶排序 4.插入排序 5.希尔排序 6.堆排序 7.快速排序 8.归并排序 9.二分法

  • 9.内容排序

    复杂排序1531061829567.png 我们往往会遇到这样的排序,当我们点击机构类别的时候,他能根据我们选择的...

  • 排序算法--冒泡、选择、插入、希尔

    O(N^2)冒泡排序、选择排序、插入排序亚二次时间复杂度--希尔排序O(NlogN)归并排序、快速排序、堆排序非比...

  • MapReduce应用

    MapReduce应用 二次排序 二次排序的需求说明 在mapreduce操作时,shuffle阶段会多次根据ke...

  • Spark--spark的二次排序(面试必问)

    什么是二次排序 二次排序就是key之间有序,而且每个Key对应的value也是有序的;也就是对MapReduce的...

  • 3.9 两道关于逆序对的题目

    Chapter3: 更好的查找与排序算法 9. 用归并排序思想解两道关于逆序对的题目 合并有序数组 题目 给定两个...

  • 数据结构

    计数排序浪费空间,桶排序减少了空间浪费,但是要做二次排序,增加了时间 a.push('hello') 入队 /栈a...

  • 排序及topN

    基于排序机制的wordcount 按照每个单词出现次数的顺序,降序排序 二次排序 安装文件的第一列排序,如果第一列...

网友评论

    本文标题:9. 二次排序

    本文链接:https://www.haomeiwen.com/subject/oclylqtx.html