谷神后端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)))
相关推荐
想不明白的过度思考者2 分钟前
Rust——异步递归深度指南:从问题到解决方案
开发语言·后端·rust
芝麻开门-新起点38 分钟前
flutter 生命周期管理:从 Widget 到 State 的完整解析
开发语言·javascript·ecmascript
我先去打把游戏先1 小时前
ESP32开发指南(基于IDF):连接AWS,乐鑫官方esp-aws-iot-master例程实验、跑通
开发语言·笔记·单片机·物联网·学习·云计算·aws
逻极2 小时前
Rust数据类型(上):标量类型全解析
开发语言·后端·rust
Zhangzy@2 小时前
Rust 编译优化选项
android·开发语言·rust
百锦再2 小时前
第2章 第一个Rust程序
java·开发语言·后端·rust·eclipse·tomcat·hibernate
Zhangzy@2 小时前
Rust 中的注释与文档注释实践指南
开发语言·后端·rust
像风一样自由20202 小时前
使用 Rust 开发图片切分工具:从零到发布的完整指南
开发语言·后端·rust
半夏知半秋3 小时前
mongodb的复制集整理
服务器·开发语言·数据库·后端·学习·mongodb