`

Map 排序写法

map 
阅读更多
话不多说,直接贴代码:
//对任务单的分段计划根据里程进行排序设置顺序
public void deliverySeq(Shipment shipment) {
		Set<Leg> legs = shipment.getLegs();
		Map<String, List<Leg>> legMaps = new HashMap<String, List<Leg>>();
		String consignorCode = GlobalParamUtils
				.getGloableStringValue("CONSIGNOR_CODE");
		for (Leg leg : legs) {
			List<Leg> legList = legMaps.get(leg.getLocationHashCode());
			if (legList == null) {
				legList = new ArrayList<Leg>();
				legMaps.put(leg.getLocationHashCode(), legList);
			}
			legList.add(leg);
		}
		// 对相同的出发地,目的地的LEG进行里程归纳
		Map<String, Integer> seqMap = new HashMap<String, Integer>();
		for (Map.Entry<String, List<Leg>> me : legMaps.entrySet()) {
			Leg leg = me.getValue().get(0);
			Integer distance = this.getLegDistance(leg, consignorCode);
			seqMap.put(me.getKey(), distance);
		}
//               调用排序
		Map.Entry<String, Integer>[] seqMaps = this
				.getSortedHashtableByValue(seqMap);
		for (int i = 0; i < seqMaps.length; i++) {
			List<Leg> legList = legMaps.get(seqMaps[i].getKey());
			for (Leg leg : legList) {
				leg.setDeliverySeq(i + 1);
				commonDao.store(leg);
			}
		}
	}

//Map的Integer值排序的写法
public Map.Entry<String, Integer>[] getSortedHashtableByValue(
			Map<String, Integer> map) {
		Set set = map.entrySet();
		Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set
				.size()]);
		Arrays.sort(entries, new Comparator<Object>() {
			public int compare(Object arg0, Object arg1) {
				Long key1 = Long.valueOf(((Map.Entry<String, Integer>) arg0)
						.getValue().toString());
				Long key2 = Long.valueOf(((Map.Entry<String, Integer>) arg1)
						.getValue().toString());
				return key1.compareTo(key2);
			}
		});
		return entries;
	}
分享到:
评论

相关推荐

    java8 stream 操作map根据key或者value排序的实现

    Java8 Stream 操作 Map 根据 Key 或 Value 排序的实现 Java8 中的 Stream 操作为开发者提供了简洁高效的数据处理方式,今天我们将介绍如何使用 Java8 Stream 操作 Map 根据 Key 或 Value 排序的实现。 Map 根据 ...

    stream操作写法,原版pdf

    Stream 操作写法详解 Stream 操作是 Java 8 中引入的一种函数式编程方式,旨在简化数据处理和操作。Stream 操作可以将复杂的数据处理过程分解成多个步骤,每个步骤执行特定的操作,最后将结果收集起来。 Stream ...

    jquery实现的div拖动排序插件jquery.sortable源码.zip

    1. 初始化方法:定义$.fn.sortable,这是jQuery插件的标准写法,用于扩展jQuery对象的方法。 2. 配置选项:插件可能提供一些可配置的参数,如拖动的灵敏度、排序完成后的回调函数等。 3. 事件处理:包括对...

    HiveSQL优化手册

    - **Cluster By**:当`Distribute By`和`Sort By`字段相同时,可以使用`Cluster By`代替,简化写法的同时实现相同的效果。 2. **合理设置Map/Reduce Task数量** - **减少Map数量**:通过小文件合并或调整JVM重用...

    MongoDB和Mysql常用增删改查语句

    - 在投影中不能同时包含包含字段和排除字段,例如:`db.salary.find({}, {"map.year": 1, "map.month": 0})`,这样的写法会导致错误。 - 可以通过设置其他字段为1,并将“_id”设置为0来排除“_id”,例如:`db....

    算法和代码片段的多语言集合。_C++_Java_下载.zip

    3. **C++特性**:包括C++的面向对象特性(类、对象、继承、多态)、模板、STL(标准模板库)的使用,如vector、list、map、set等容器,以及算法库中的函数。 4. **Java特性**:包括Java的面向对象特性、接口、异常...

    python高级用法详解

    5. **functools模块**: 提供了许多有用的功能,如partial()可以用于部分应用函数,以及cmp_to_key()可以将比较函数转换为关键字函数,使得函数可用于排序。 **二、作用域** 在Python中,变量的作用域决定了它们的...

    Java基础总结_java初学_java基础

    `对map中的键或者值的排序.docx`说明了Map接口的使用。Map存储键值对,不保证顺序,但可以通过`Collections.sort()`和自定义比较器进行排序。`对Map按key和value分别排序 - DM张朋飞 - 博客园.htm`可能详细讲解了...

    常用库及数据结构-学习笔记.md

    首先,笔记开头提到了包含所有标准库的万能头文件`#include&lt;bits/stdc++.h&gt;`,它是C++中常用的简便写法,用于包含标准库的所有头文件,便于快速编写测试代码。 接着,笔记介绍了集合(set)和向量(vector)的转换方法...

    Java集合框架图(超详细)

    增强for循环的本质是迭代器遍历的简化写法。Java 8 引入了lambda表达式,进一步简化了集合的操作和遍历过程。在Java集合框架中,使用集合时需要注意可能出现的并发修改异常(ConcurrentModificationException),这...

    Perl中著名的Schwartzian转换问题解决实现

    最后,我们再用一次`map`函数,只保留每个排序后的元组的第一个元素(即文件名),生成最终的排序文件列表`@sorted_files`。 这些步骤可以合并到一行代码中,尽管这样做可能降低了可读性,但在某些情况下,简洁的...

    JavaScript 语言教程 全面介绍 ECMAScript 6 新增的语法特性包括语言程序库数据结构算法 系统 网络 zip

    箭头函数(Arrow functions)提供了更紧凑的语法,改变了`function`关键字的写法,同时改变了`this`的指向,使其更加符合预期: ```javascript let add = (x, y) =&gt; x + y; ``` ES6还引入了let和const关键字,它们...

    tree(c++ tree容器)

    例如,它可能提供了自定义比较函数的能力,使得排序和查找可以依据特定的规则进行;或者提供了高效的遍历和修改节点的方法。 在标签中,"STL tree"和"标准库"表明这个树容器是面向STL设计的,遵循了STL的设计原则,...

    Python3 中作为一等对象的函数解析

    最后,Python3中列表推导式和生成器表达式也被看作是具有map和filter功能的简化写法。列表推导式是创建列表的简洁方式,可以用来替换列表的for循环。生成器表达式与列表推导式类似,但其生成的不是列表,而是一个...

    Java8新特性视频 最新的讲解视频

    7. **并行数组排序**:Arrays类新增了并行排序方法,利用多核CPU的并行计算能力,提高了排序效率。 8. **新的集合工厂方法**:List、Set、Map接口都添加了一些静态工厂方法,可以直接创建带有初始元素的集合,简化...

    Java数据处理API方法详解.pdf

    在Java 8中,可以使用`stream()`方法创建一个流,接着使用`filter()`筛选出低卡路里菜品,`sorted()`进行排序,`map()`将菜品对象转化为名字,最后`collect()`收集到新的列表中。这种方法更直观,且由于流操作可以...

    Java判断List中相同值元素的个数实例

    `TreeMap`内部会根据Key的自然顺序(或者自定义比较器)来排序键。在这里,我们将`listIp`中的每个元素作为Key,对应的Value表示该元素在列表中出现的次数。 循环遍历`listIp`中的每个元素,如果当前元素在Map中不...

    为了跳槽对java 全盘复习,覆盖,jvm 数据结构,集合框架,一些算法,spring全家桶

    4. 算法:算法是解决问题的步骤和方法,如排序(快速排序、归并排序、冒泡排序等)、查找(二分查找、哈希查找等)、图算法(Dijkstra、Floyd等)。熟练掌握各种算法有助于提升代码质量和运行效率。 5. Spring全家...

Global site tag (gtag.js) - Google Analytics