首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一个list 里面存放实体类,根据多个字段进行分组,最后将结果都保存,返回一个map 集合,一层一层的map 集合

目录 1 需求 2 实现 1 需求 现在从数据库查询出一个list 集合的数据,是一个实体类,现在需要根据多个字段进行分组,最后只是返回一个map 集合。...一层一层的 2 实现 如果你想在最后一层的列表数据上进行计算,并将计算结果保存并返回一个Map集合,可以按照以下方式修改代码: import java.util.List; import java.util.Map...MapMap>> groupedData = dataList.stream() .collect(...calculateValue方法接收一个最后一层的列表数据,并根据实际需求进行计算,并返回计算结果。这样,最终的分组结果将包含计算结果的Map集合。...如果在最后一层,需要传另外的参数 如果calculateValue方法需要接收一个最后一层的列表数据和一个额外的字符串变量,你可以将该变量添加到方法的参数列表中,并在Collectors.collectingAndThen

71010

基础 | 深入详解函数的柯里化

二、补充知识点之利用call/apply封数组的map方法 map(): 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。...通俗来说,就是遍历数组的每一项元素,并且在map的第一个参数(回调函数)中进行运算处理后返回计算结果。返回一个由所有计算结果组成的新数组。 在上面例子的注释中详细阐述了map方法的细节。...在理解了map的封装过程之后,我们就能够明白为什么我们在使用map时,总是期望能够在第一个回调函数中有一个返回值了。...总结一下上面2个例子,其实我们是利用闭包的特性,将所有的参数,集中到最后返回的函数里进行计算并返回结果。因此我们在封装时,主要的目的,就是将参数集中起来计算。 来看看具体实现。...那么这里就需要map来帮助我们对每一项进行特殊的运算处理,生成新的数组然后用字符连接起来了。实现如下: 但是如果我们又想要让数组每一项都减去一个数之后再连起来呢?当然和上面的加法操作一样的实现。

37611
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数组常用方法含ES6新增

    会改变原数组 push 往数组最后面追加元素,返回最新数组的长度 pop 删除数组最后一项, 返回最新数组的长度 unshift 往数组头部添加元素,返回数组最新长度 shift 删除数组头部元素,返回删除的数组元素的值...,包含从 start 到 end (不包括该元素)的 数组 中的元素 map 遍历数组每一项,返回改变后的值组成的新数组es6新增 Array.of() 返回参数值组成的数组,如果没有参数就返回一个空数组...es6新增 filter 查找满足条件的项, 把所有符合条件的都在一个新数组里返回,没找到满足条件的则返回空数组es6新增 Flat(number/Infinity) 将多位数组转为一维数组,默认只展开一层...,没找到满足条件的,返回undefined,如果有满足条件的,返回的是满足条件的这一项 arr.find(item=>item>2) es6新增 findIndex 返回符合条件的数组第一个元素位置,没有符合条件的返回...es6新增 every所有都满足条件才返回true,否则返回falsees6新增 join将数组的每一项用指定字符链接形成一个字符串并作为返回值,默认连接符号是“,” toString() 把数组转换为字符串

    62330

    JavaScript数组方法总结

    pop():数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。 注意:pop()里面没有参数,及时有参数,也是删除最后一项。...这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给 concat()方法传递参数的情况下,它只是复制当前数组并返回副本。...如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。 arrCopy只设置了一个参数,也就是起始下标为1,所以返回的数组为下标1(包括下标1)开始到数组最后。...对新数组变化不会影响原数组的改变 (5)map() :对数组的每一项运行给定函数,返回每次函数调用结果所组成的数组 之后修改生成的数组不会影响原数组 五....第一次执行回调函数的时候,pre为1,cur为2,第二次,pre为3(1加2的结果),cur为3(数组的第三项),依次类推,直到将数组的每一项都访问一遍,最后返回结果。

    1.7K20

    js数组常用方法

    js数组常用方法还挺多的,有16个,如果面试官问你这道题可不要只回答几个哟,那是会扣分的! 1. Array.push(),向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变。...Array.pop(),删除并返回数组的最后一个元素,若该数组为空,则返回undefined。原数组改变。 3. ...①从小到大 ②从大到小 ③按照数组对象中的某个值进行排序 9.Array.map(function),原数组的每一项执行函数后,返回一个新的数组。原数组不变。...(不包含m) array.slice(n) 第二个参数省略,则一直查找到末尾 array.slice(0)原样输出内容,可以实现数组克隆 array.slice(-n,-m) slice支持负参数,从最后一项开始算起...,-1为最后一项,-2为倒数第二项 返回值:返回一个新数组 是否改变原数组:不改变 11.Array.splice(index,howmany,arr1,arr2…) ,用于添加或删除数组中的元素

    15610

    手把手教你学会Python函数式编程

    函数唯一能做的就是计算一些东西并将其作为结果返回。 现在你可能会想:“没有变量,没有副作用?为什么这样好?“这个问题问得好,我相信大多数人对此感到疑惑。...现在我们知道什么是可迭代对象了,让我们回到map函数。 map函数允许我们将函数应用于iterable中的每一项。 Map需要2个输入,它们分别是要应用的函数和可迭代对象。...它将函数应用于列表中的每一项,如果该函数返回True,则不执行任何操作。如果返回False,则从列表中删除该项。...我们可以只使用1个参数来调用需要2个参数的函数。 我们还可以使用一个循环来生成一个幂函数,该函数实现从立方体一直到1000的幂。...这是一个简短的论证,为什么函数式编程不能很好地适应整个Python生态系统。你可能已经注意到我之前提到了列表推导,我们现在将讨论它们。

    1.1K21

    JavaScript——数组

    join()方法只接收一个参数,即用作分隔符的字符串。...push() 方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回数组的长度。 pop() 方法则从数组末尾移除最后一项,减少数组的length值,并返回移除的项。...());//取得最后一项 console.log(colors.length);//取得最后一项的长度 队列方法 队列数据结构访问规则是FIFO(First-In-First-Out,先进先出)。..., array) { console.log(item);//1,2,3,4,5,6,7,8,9,0 }); map():对数组中的每一项运行给定函数,返回每次函数调用结果组成的数组 var numbers...这俩个方法都会迭代数组的所有项,然后构建一个最终返回的值。其中,reduce()方法从数组的第一项开始,逐个遍历到最后。而reduceRight()则从数组的最后一项,向前遍历到第一项。

    96320

    美团前端手写面试题总结

    返回值穿透// 3....); timer = setTimeout(() => { fn.apply(this, args); }, delay); };};适用场景:按钮提交场景:防止多次提交按钮,只执行最后提交的一次服务端验证场景...:表单验证需要服务端配合,只执行一段连续的输入事件的最后一次,还有搜索联想词功能类似生存环境请用lodash.debounceArray.prototype.map()Array.prototype.map...所以这里([^;]*)表示的是除了";"这个字符串别的都匹配(*应该都知道什么意思吧,匹配0次或多次)有的大佬等号后面是这样写的'=([^;]*)(;|$)',而最后为什么可以把'(;|$)'给省略呢?...因为其实最后一个cookie项是没有';'的,所以它可以合并到=([^;]*)这一步。最后获取到的match其实是一个长度为4的数组。

    95650

    JS数组常用方法大全

    数组的方法有数组原型方法,也有从object对象继承来的方法, 常用方法: join 数组转字符串 split 字符串转数组 push 将数据添加到数组尾部 pop 数组末尾移除最后一项 shift 删除原数组第一项...splice 从数组中添加/删除项目,然后返回被删除的项目,改变原数组 indexOf 从数组第0项查找目标值,返回第一个值的下标,无返回1 lastIndexOf 从数组最后查找目标值,返回第一个值的下标...无返回undefined filter 遍历数组,返回符合条件的数组,无则返回空数组 map 遍历数组,返回一个新数组,不改变原数组 forEach 遍历数组,对数组中的每一个元素执行一次回调函数,无返回值...pop():数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。...reduce()方法从数组的第一项开始,逐个遍历到最后。而 reduceRight()则从数组的最后一项开始,向前遍历到第一项。

    3K30

    Javascript数组的常用方法和数据类型检测

    原数组:已经发生了改变 ary.push(10); //等效于 ary[ary.length] = 10; //等效于 ary.splice(ary.length, 0, 10); pop:删除数组最后一项的内容...,如果数组中没有这一项,返回的结果是-1,如果有这一项,索引是几就返回几,原来的数组不变 forEach / map 都是用来遍历数组中的每一项的 forEach:数组中有几项,我们的函数就执行几次;..., index); }); map和forEach的语法是一样的,但是有返回值 var a=new Array(1,2,3,4,5,6); console.log(a.filter(function(e...,返回true则把当前元素加入到返回数组中,false则不加,新数组只包含返回true的值,索引缺失的不包括,原数组保持不变 var ary = [12,34,230,54,34,25,26,14];...(typeof typeof typeof function(){}); //"string" 局限性 typeof null ->"object" 不能具体的细分是数组还是正则,还是对象中其他的值,最后返回的结果都是

    64320

    从零开始学 Web 之 JavaScript(四)数组

    isArray() //HTML5中新增 ,判断是不是数组 toString() //把数组转换成字符串,每一项用,分割 valueOf() //返回数组对象本身 join(变量)...(元素1); pop() //取出数组中的最后一项,返回最后一项 //被删除的元素 = 数组1.pop(); unshift() //在数组最前面插入项,返回数组的长度 //数组1改后的长度 = 数组...1.unshift(元素1); shift() //取出数组中的第一个元素,返回第一项 //被删除的元素 = 数组1.shift(); reverse() //翻转数组(原数组讲被反转,返回值也是被反转后的数组...map有返回值,返回什么都添加到新数组中。...pop 删除数组的最后一个元素并返回删除的元素。 注意:此方法改变数组的长度! 提示: 移除数组第一个元素,请使用 shift() 方法。

    45420

    JavaScript 高级程序设计(第 4 版)- 集合引用类型

    ,可以使用join()方法 栈方法 push()接收任意数量的参数,并将它们添加到数组末尾,返回数组的最新长度 pop()用于删除数组的最后一项,同时减少数组的length值,返回被删除的项 队列方法...true filter()对数组每一项运行传入的函数,函数返回true的项会组成数组之后返回 forEach()对数组每一项都运行传入的函数,没有返回值 map()对数组每一项都运行传入的函数,返回由每次函数调用的结果构成的数组...some()对数组每一项都运行传入的函数,如果有一项函数返回true,则这个方法返回true 归并方法 两个归并方法:reduce()和reduceRight(),迭代数组的所有项,并在此基础上构建一个最终返回值...reduce()方法从数组第一项开始遍历到最后一项,reduceRight()从最后一项开始 两个参数:对每一项都会运行的归并函数,可选的作为归并起点的初始值 归并函数接收4个参数:上一个归并值,当前值...内存占用 指定大小内存,Map可以比Object多存储50%键值对 插入性能 插入Map稍快 插入速度不会随着键值对数量线性增加 查找速度 只包含少量键值对时,Object查找速度更快 删除性能

    687100

    JavaScript进阶之路系列(一): 高阶函数

    高阶函数,听起来很高级,其实是很接地气,大家经常会用到的东西,比如filter,map,回调函数。 高阶函数是对其他函数进行操作的函数,可以将它们作为参数或通过返回它们。...setTimeout("console.log('我是回调函数')", 3000);//模仿耗时操作 } //调用主函数,将函数B传进去 A(B); 这里有一个问题,我们执行A函数后,执行B函数,为什么不直接在...map()方法定义在JavaScript的Array中,它返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。...(results); //[1,4,9,16,25,36] 定义了一个pow函数,函数的做用是让参数平方,map函数的参数是pow参数,map遍历了数组,把数组的每一项传进了pow函数里面,再...map也是一个典型的高阶函数。 总结: 高阶函数就只讲这两个方法了,我相信以各位的聪明才智已经理解了什么是高阶函数。 最后留一个小思考,闭包,是不是高阶函数呢?

    85130

    前端学数据结构与算法(十一):看似简单又让人抓狂的二分查找算法

    真正二分查找的题目细节更讲究,来感受下二分查找为什么让人抓狂吧。 35 - 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。...}; 540 - 有序数组中的单一元素 给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。...但是这样的区间可能会有多个,我们需要找到符合这个要求且下标值最小的那一项。 我们使用排序即可,按照起始点从升序排列,依次遍历时,符合条件的第一项,绝对就是下标值最小的那一项。...但此时会遇到另外一个问题,就是排序之后的下标和最初的下标不同,此时我们可以使用map记录下最初的下标值。找到符合的区间后,查看该区间最初的下标,添加到返回的集合里即可。...代码如下: var findRightInterval = function (intervals) { const res = []; // 最终返回的结果 const map = new Map

    46930
    领券