list转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
#set ( $map = @list2map ( $list, $key, $field) )
list转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
#set ( $map = @list2mapByScript ( $list, $key, $field) )
list转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
#set ( $map = @list2mapByFun ( $list, $vs. util. newMap ( 'fun' , @keyFun ) , $vs. util. newMap ( 'fun' , @valueFun ) ) )