param

[LeetCode] 88. Merge Sorted Array

隐身守侯 提交于 2019-12-02 02:19:11
合并两个sort好的数组。例子如下, Input: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 Output: [1,2,2,3,5,6] 既然两个数组都已经排好序,而且nums1的size保证能塞得下两个数组长度之和。思路是从后往前比较谁的元素大,谁就把元素放到nums1里面。这样nums1会被下标从右到左,值从大到小被填满。 时间O(m + n) 空间O(1) 1 /** 2 * @param {number[]} nums1 3 * @param {number} m 4 * @param {number[]} nums2 5 * @param {number} n 6 * @return {void} Do not return anything, modify nums1 in-place instead. 7 */ 8 var merge = function(nums1, m, nums2, n) { 9 m = m - 1; 10 n = n - 1; 11 let i = m + n + 1; 12 while (m >= 0 || n >= 0) { 13 if (m < 0) { 14 nums1[i] = nums2[n]; 15 i--; 16 n--; 17 } else if (n < 0)

Stream/Bytes[]/Image对象相互转化

自作多情 提交于 2019-12-02 01:55:06
/// <summary> /// 将 Stream 转成 byte[] /// </summary> /// <param name="stream"></param> /// <returns></returns> public static byte[] StreamToBytes(Stream stream) { byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); // 设置当前流的位置为流的开始 stream.Seek(0, SeekOrigin.Begin); return bytes; } /// <summary> /// 将 byte[] 转成 Stream /// </summary> /// <param name="bytes"></param> /// <returns></returns> public static Stream BytesToStream(byte[] bytes) { Stream stream = new MemoryStream(bytes); return stream; } // <summary> /// 字节流转换成图片 /// </summary> /// <param name="byt">要转换的字节流<

自己实现一个简化版的SpringMVC框架

戏子无情 提交于 2019-12-02 01:43:35
  废话不多说,我们进入今天的正题,在Web应用程序设计中,MVC模式已经被广泛使用。SpringMVC以DispatcherServlet为核心,负责协调和组织不同组件以完成请求处理并返回响应的工作,实现了MVC模式。想要实现自己的SpringMVC框架,需要从以下几点入手: 一、了解SpringMVC运行流程及九大组件 二、梳理自己的SpringMVC的设计思路 三、实现自己的SpringMVC框架 一、了解SpringMVC运行流程及九大组件 1、SpringMVC的运行流程 ⑴ 用户发送请求至前端控制器DispatcherServlet ⑵ DispatcherServlet收到请求调用 HandlerMapping处理器映射器 。 ⑶ 处理器映射器 根据请求url找到具体的处理器 ,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 ⑷ DispatcherServlet通 过HandlerAdapter处理器适配器 调用处理器 ⑸ 执行 处理器(Controller,也叫后端控制器 )。 ⑹ Controller执行完成返回ModelAndView ⑺ HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet ⑻

Mybatis中parameterType的用法

跟風遠走 提交于 2019-12-01 23:34:24
在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法, parameterType为输入参数,在配置的时候,配置相应的 输入参数类型即可。parameterType有基本数据类型和复杂的数据类型配置。 1.基本数据类型,如输入参数只有一个,其数据类型可以是基本的数据类型,也可以是自己定的类类型。包括int,String,Integer,Date,如下: (1)根据id进行相应的删除:<delete id="deleteById" parameterType="Integer"> (2)添加成员:<insert id="addEmp" parameterType="com.pojo.Employee"> 2.复杂数据类型:包含java实体类,map。 配置如下: < select id= "selectTeacher" parameterType= "Map" resultType= "com.myapp.domain.Teacher" > select * from Teacher where c_id=#{id} and sex=#{sex} </ select > java代码如下: Map<String,String> map= new HasMap<String,String>(); map

[转] Mybatis-Plus 之BaseMapper 方法详解

流过昼夜 提交于 2019-12-01 23:20:49
转载自链接: https://my.oschina.net/360yg/blog/1834091 近期需要这方面的知识,故转载记录一下,方便以后查询。尊重原作劳动成果! /** * Mapper 继承该接口后,无需编写 mapper.xml 文件,即可获得CRUD功能 * 这个 Mapper 支持 id 泛型 * @author hubin * @Date 2016-01-23 */ public interface BaseMapper<T> { /** * 插入一条记录 * @param entity * 实体对象 * @return int */ Integer insert(T entity); /** * 根据 ID 删除 * @param id * 主键ID * @return int */ Integer deleteById(Serializable id); /** * 根据 columnMap 条件,删除记录 * @param columnMap * 表字段 map 对象 * @return int */ Integer deleteByMap(@Param("cm") Map<String, Object> columnMap); /** * 根据 entity 条件,删除记录 * @param wrapper * 实体对象封装操作类(可以为 null) *

Struts2 配置文件result的name属性和type属性

谁都会走 提交于 2019-12-01 22:38:08
Struts2 配置文件result的name属性和type属性: Name属性 SUCCESS:Action正确的执行完成,返回相应的视图,success是 name属性的默认值; NONE:表示Action正确的执行完成,但并不返回任何视图; ERROR:表示Action执行失败,返回到 错误处理视图; INPUT:Action的执行,需要从前端界面获取参数,INPUT就是代表这个参数输入的界面,一般在应用中,会对这些参数进 行验证,如果验证没有通过,将自动返回到该视图; LOGIN:Action因为用户没有登陆的原因没有正确执行,将返回该登陆视图,要求用户进行 登陆验证。 Type属性: dispatcher:请求转发,底层调用RequestDispatcher的forward()或include()方 法,dispatcher是type属性的默认值,通常用于转向一个JSP,localtion指定JSP的位置,parse如果为false表示 location的值不会被当作OGNL解析,默认为true; redirect:重定向,新页面无法显示Action中的数据,因为底层调用 response.sendRedirect("")方法,无法共享请求范围内的数据,参数与dispatcher用法相同; redirect- action:重定向到另一个Action

树形数据操作

南楼画角 提交于 2019-12-01 20:46:42
class Tree { /** * 数据递归 * @param $data * @param int $id * @param int $level * @param array * @return array * @date 2018.10.24 15:40:34 */ public static function recursion($data, $id = 0, $level = 1) { $return = []; foreach ($data as $val) { if ($val['pid'] == $id) { $val['level'] = $level; $return[] = $val; $return = array_merge($return, static::recursion($data, $val['id'], $level + 1)); } } return $return; } /** * 子节点的上级节点 * @param array $data * @param int $pid * @param array $result 临时结果 * @return array * @date 2018.10.24 15:45:44 */ public static function family($data, $pid, $result = []) {

多文档窗体的实现----c#之winform界面

笑着哭i 提交于 2019-12-01 18:12:33
学习c#有一段时间啦,也做过一些实例。now,谈谈winform. 在Winform界面中窗体我们一般使用多文档进行展示,也就是类似一般的选项卡的方式可以加载多个窗体界面。一般来说,我们如果打开新的窗体,给窗体传递参数是很容易的事情,但是在框架层面,一般的窗体是通过动态创建的,一般传入窗体的类型,在多文档集合里面判断,如果存在则激活,如果不存在则创建的方式,所以我们传递参数会碰到一些问题。本文即使介绍如何在这种方式下,给窗体对象传递参数,从而实现相应的数据处理功能。 不管是主体界面中,左侧包含树形列表,还是顶部包含工具栏的情况,都可能涉及打开窗体的时候,传递一些初始化参数,方便窗体的更新显示的情况,这种的处理相对直接传值的方式需要复杂一点,我们可以通过接口、事件的方式进行处理,下面我来介绍一下整个实现的方式。 1、多文档窗体的构建或者激活 在我的Winform开发框架里面,我们加载多文档窗体的时候,都是统一采用一种方式来进行构建不存在或者激活已有窗体的,代码如下所示。 private void tool_Purchase_ItemClick( object sender, DevExpress.XtraBars.ItemClickEventArgs e) { ChildWinManagement.LoadMdiForm( this , typeof (FrmPurchase));

msql中@RequestParam、@Param、@PathVariable的用法

大憨熊 提交于 2019-12-01 16:33:54
@RequestParam的用法 1.可以对传入参数指定参数名,将请求参数绑定至方法参数 // 下面的对传入参数指定为aa,如果前端不传aa参数名,会报错 @RequestParam(value="aa") String inputStr 2.可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传 //required的值,默认为true,表示请求中一定要有相应的参数,否则将报错public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, HttpServletRequest request) 3.如果@requestParam注解的参数是int类型,并且required=false,此时如果不传参数的话,会报错。原因是,required=false时,不传参数的话,会给参数赋值null,这样就会把null赋值给了int,因此会报错。 public String filesUpload(@RequestParam(value="aa", required=false) int inputStr, HttpServletRequest request) //若是前端页面不传参的话,此处就会报错。当然可以用Integer代替int

随便笔记

人走茶凉 提交于 2019-12-01 16:14:15
获取个人钱包地址 /** * 获取用户钱包地址 * * @param param * @return */ @PostMapping("/getUserAddress") public CommonResultDto<String> getUserAddress(@RequestBody @Valid CreateWalletParamDto param) { return CommonResultDto.SUCCESS(createWalletService.getUserAddress(param)); } @Override public String getUserAddress(@Valid CreateWalletParamDto param) { Wrapper<WCoin> wrapperWCoin = new QueryWrapper<>(WCoin.builder().coinType(CoinTypeConstant.BTC_TOKEN).token(TokenConstant.USDT).switchFlag(true).valid("E").build()); WCoin wCoin = wCoinService.getOne(wrapperWCoin); Wrapper<WWallet> wrapper = new QueryWrapper<>