谷神后端list转map

list转map
java 复制代码
/**
 * list2map
 * list转map:支持全量映射、单字段映射。
 * 
 * @param $list:list:列表。
 * @param $key:string:键。
 * @param $field:string:值字段域。
 *
 * @return map
 *
 */ 
#function list2map($list, $key, $field)
	#if ($vs.util.isList($list) and $vs.util.isString($key))
		#set($map = $vs.util.newMap())
		#foreach($row in $list)
			#set($value = $row)
			#if (!$vs.util.isNull($field))
				#set($value = $row.get($field))
			#end
			$map.put($row.get($key), $value)
		#end
		return $map
	#end
	return null
#end
java 复制代码
// list2map
#set($map = @list2map($list, $key, $field))
list转map:动态脚本模式
java 复制代码
/**
 * list2mapByScript
 * list转map:动态脚本模式。 
 *
 * @param $list:list:列表。
 * @param $key:string:键。
 * @param $field:string:值字段域。
 *
 * @return map
 *
 */
#function list2mapByScript($list, $key, $field)
	#if ($vs.util.isList($list) and $vs.util.isString($key))
		#set($map = $vs.util.newMap())
		#foreach($row in $list)
			#set($value = $row)
			#if (!$vs.util.isNull($field))
				#set($value = $row.get($field))
			#end
			#set($script = 'return $row.' + $key)
			$map.put($vs.proc.executeScript($script, $vs.util.newMap('row', $row)), $value)
		#end
		return $map
	#end
	return null
#end
java 复制代码
// list2mapByScript
#set($map = @list2mapByScript($list, $key, $field))
list转map:高阶函数
java 复制代码
/**
 * list2mapByFun
 * list转map:高阶函数。
 * 
 * @param $list:list:列表。
 * @param $keyFun:map:键函数。
 * @param $valueFun:map:值函数。
 *
 * @return map
 *
 */ 
#function list2mapByFun($list, $keyFun, $valueFun)
	#if ($vs.util.isList($list) and $vs.util.isMap($keyFun))
		#set($map = $vs.util.newMap())
		#foreach($row in $list)
			#set($value = $row)
			#if ($vs.util.isMap($valueFun))
				#set($value = $valueFun.fun($row))
			#end
			$map.put($keyFun.fun($row), $value)
		#end
		return $map
	#end
	return null
#end
java 复制代码
// list2mapByFun
#set($map = @list2mapByFun($list, $vs.util.newMap('fun', @keyFun), $vs.util.newMap('fun', @valueFun)))
相关推荐
大圣编程5 小时前
Python中continue语句的用法是什么?
开发语言·前端·python
upgrador5 小时前
基础知识:C++ STL构造函数的左闭右开惯例及其实现原理
开发语言·c++
yoothey6 小时前
报废审批流规则引擎设计——责任链模式完整实现
linux·开发语言·bash
geovindu7 小时前
python: Functional Options Pattern
开发语言·后端·python·设计模式·惯用法模式·函数式选项模式
wuyk5557 小时前
24. C 语言模块化:不是拆几个.c 文件那么简单
c语言·开发语言·stm32·单片机
凯瑟琳.奥古斯特7 小时前
K次取反最大化数组和解法(力扣1005)
开发语言·c++·算法·leetcode·职场和发展
AC赳赳老秦8 小时前
防火墙规则批量配置实战:OpenClaw 自动生成模板、批量下发与合规性校验全解析
java·开发语言·人工智能·python·github·php·openclaw
☆cwlulu8 小时前
调试排查工具介绍(gdb、strace、Valgrind等)
开发语言·c++·嵌入式硬件·ubuntu
C语言小火车8 小时前
C++ 快速排序(Quick Sort)深度精讲:分治思想、Lomuto 分区法及三数取中优化,面试手撕必会
c语言·开发语言·c++·面试·排序算法·快速排序
sycmancia8 小时前
Qt——多线程间的互斥
开发语言·qt