- 博客(12)
- 收藏
- 关注
原创 关于springboot框架与mybatis框架怎么接收List<Map<String,Object>>类型来传给前端类似于:goods_type:number的json数据
MyBatis使用Map<String,Object>接收数据时存在局限性,只能处理单行结果,多行数据会报错。解决方案是改用List<Map<String,Object>>,其中每个List元素对应一行数据,Map的key-value对表示字段名和值。这种结构可以正确处理多行查询结果,前端接收时也能保持完整的数据格式。实现时需要注意将List中的每个Map元素正确解析并封装。
2025-12-08 22:09:52
471
原创 lambda表达式与函数式接口的渊源?
Java中的lambda表达式是JDK8引入的简化函数式接口编程的特性,它本质上是匿名方法的简写形式。相比匿名内部类,lambda表达式只能用于函数式接口(只有一个抽象方法的接口),语法更简洁,this引用指向外部类。两者都不能引用外部类的可变参数,必须保证参数实际上是final的。lambda表达式通过如a->a+10的简洁语法,显著减少了使用函数式接口时的代码量,提升了代码可读性,是Java函数式编程的重要特性。
2025-12-06 12:32:35
789
1
原创 juc并发编程之,FutureTask
FutureTask是Java中用于获取异步任务结果的工具类,它实现了RunnableFuture接口,结合了Runnable和Future的功能。主要解决多线程任务需要返回结果的需求,如通过Callable传入任务,用get()方法获取返回值(会阻塞直到任务完成)。为避免长时间阻塞,可使用带超时的get()或isDone()轮询检查任务状态。示例代码展示了如何创建FutureTask、启动线程并处理任务结果,同时演示了非阻塞式结果获取方式。
2025-12-05 19:59:45
408
原创 关于顺序表的总结
首先顺序表是线性表的一种,满足线性表的特点,其顺序表的本质是一个拥有最大长度和当前长度的一维数组,他的内存单元是连续的,对顺序表的操作归根结底是对数组的操作,只不过顺序表要定义一个结构体,将数组、数组最大长度(这里记作capacity)、和数组当前长度(这里记为size)放在一个结构体中进行操作。那么我们来看有关顺序表的操作。
2025-01-20 17:30:18
533
原创 顺序表与链表周总结
然后是队列安排,这个和我所论述的第一道题目差不多,只是有一个0,1,操作,让我们选择前插还是后插,这里我们要定义两个结构体变量来实现这一操作,因为一个结构体变量不能实现前插,这里这道题目论述前插和后插的函数putnums。首先这个题目就是一个一个不重复的数字组成的链表,我先设了一个头结点不储存任何数据,然后这个表一开始不是空链表,而是包含一个元素1的链表,那么我首先操作,建立这样一个链表,代码如下:(这里假设头文件都有,写在主函数中)p->next=p->next->next;u<n-1;
2025-01-20 00:06:23
470
原创 预备役day5
的moveleft=fresh是出错了,我当时想的是让他插入后一直往后,其实这里已经结束了,不要再继续插入,但是这里好像也不影响链表的结构,所以肯定还有问题,但是我再重新调试发现写完第二行就不能写了我又加了清空缓冲区的代码还是不能继续写,为什么。可是在我运行之后发现插入时出现了问题,这个是一个双向插入,插左边或者右边,我定义了moveleft和moveright一左一右方便插入,然后呢,如果是单个的话就不能往回插入,因为单向链表是不可逆的。看了一会后,我发现了我当时脑子出错的地方,我的。
2025-01-19 00:51:44
363
原创 预备役day4
那么为什么会出现垃圾值呢,首先我先将我的代码简单介绍一下,大致是一个一维数组,然后通过j变量来计算m,每次经过m就会将j的值重新计算,然后输出j=m时的那个数组元素,并且将这个元素后面的值整体平移到前面来,其中k是用来计算实际长度的因子,实际长度应该为n-k,所以每次整体平移会实行k++,i就是记录到了数组的第几个元素,当i到了某个时刻数组的极限长度(n-k)时,i就会变成零,,那么接下来我们来看这个程序漏洞在哪里。我想了想,应该是i变为零的时候有问题。后来我将k去掉,改成直接将n--,就可以了欧耶!
2025-01-16 21:55:11
357
原创 预备役day3
今天一直在写链表,关于我的代码我一直在调试看看哪个环节出了问题,后面发现是链表的结点删除出了问题,有时候又没有问题,但有时候又会出现程序崩溃的现象,对此我认为是我的链表学的不是很熟练,还是出了小问题,于是我画图打草稿。看了以后约瑟夫问题,发现应该是可以用数组的方法,只要找到一个元素就将后面的元素依次前移,有点像插入排序,对了排序方法我熟练掌握就只有选择排序,那么明天我要复习一下插入排序选择排序和冒泡排序,然后解决约瑟夫问题。
2025-01-16 00:00:02
185
原创 预备役day2
以上的我认为比较重要的归纳一下,首先,scanf函数遇到连续的空白字符(空格,制表符,换行符)将会视作一个空白字符,而且scanf函数对于%s格式说明符,遇到空白字符(空格,制表符,换行符)会停止读取,而对于%c格式说明符,会读取一个字符,无论什么都会读取,但如果不想读取前面的空白字符可以在%c前面加一个空格。我输入6,然后换行符终止读取,n就是6,但是c会读取一个字符包括换行符,那么我c='\n',显然不行,那么如果加一个空格,变成 %c就行啦。• 使用%c读取字符时,要注意空白字符的读取。
2025-01-14 23:32:21
915
原创 预备役day2
以上的我认为比较重要的归纳一下,首先,scanf函数遇到连续的空白字符(空格,制表符,换行符)将会视作一个空白字符,而且scanf函数对于%s格式说明符,遇到空白字符(空格,制表符,换行符)会停止读取,而对于%c格式说明符,会读取一个字符,无论什么都会读取,但如果不想读取前面的空白字符可以在%c前面加一个空格。我输入6,然后换行符终止读取,n就是6,但是c会读取一个字符包括换行符,那么我c='\n',显然不行,那么如果加一个空格,变成 %c就行啦。• 使用%c读取字符时,要注意空白字符的读取。
2025-01-14 23:30:48
542
原创 预备役学习总结day1
那么如何改进呢,对于_getch()函数与rewind函数,我是之前做学生系统时从网上学来的,输入之后就会删除这个显示,其实在这个题目是不必要的,但是呢,有一种方法来来吸收这个,就是直接在后面加一个getchar()来吸收,为什么呢,我们首先要明白什么是缓冲区,就好比我们学校的水卡,我们总不可能用一次就充一次,我们通常是先存进去一些钱,然后之后就用完这里的钱再去充,缓冲区也是这样的,比如我们。写这个题目真的要注意缓冲区的问题,有时候都不知道错哪里来,输不进去什么的,一定要处理好缓冲区问题!
2025-01-14 00:08:06
790
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅