谷神后端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)))
相关推荐
论迹复利3 小时前
FreeRTOS 在 RISC-V 上是如何“点火“的 —— 从 main() 到第一个任务的完整链路
java·开发语言·risc-v
张宇Joaquin3 小时前
鲲鹏统一并行加速库KUPL--众核并行能力介绍
java·开发语言·网络
736c3 小时前
C语言-数组 07
c语言·开发语言
宸津-代码粉碎机4 小时前
AI攻防战升级!基于Spring AI构建Java应用自动免疫安全体系
java·大数据·开发语言·人工智能·python·安全·spring
LorryJovens5 小时前
【LAAP科研】CEN因果等价网络理论---从双缝干涉到因果等价
开发语言·php
Brilliantwxx6 小时前
【Linux】 进程(10) 进程控制深度解析:创建、终止与等待
linux·运维·服务器·c语言·开发语言·网络
卢锡荣7 小时前
国产PD3.1全集成Type-C管控芯片LDR6020P
c语言·开发语言
Freak嵌入式7 小时前
Pico UART 数据收发实战:硬件配置、MicroPython 编程
java·开发语言·单片机·嵌入式硬件·生活
Casual7 小时前
【网络基础进阶】:看懂子网划分与 VLAN
开发语言·网络·php
cfm_29148 小时前
线程池阻塞队列
java·开发语言