`

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`可能详细讲解了...

    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全家...

    2021-2022计算机二级等级考试试题及答案No.13214.docx

    - **知识点**:条件表达式的正确写法。 - **解析**:在C语言中,`a0`、`!a`和`a=0`都不是表示`a`不等于0的有效方式。只有`a != 0`才是正确的表达式。因此,正确答案为ABC。 #### 题目20:程序段输出结果 - **知识点...

    珠海金山WPS面试题(亲面)

    - `++a++`这样的写法在C++中是错误的,因为`++a`已经返回了值,而`++`操作需要一个左值表达式。 - `++(a++)`也是错误的,因为括号内的`a++`返回的是a自增前的值,该值为右值,无法再对其执行`++`操作。 #### 数字...

Global site tag (gtag.js) - Google Analytics