社区
Java EE
帖子详情
问个从集合中计算指定数字并分组的方法
lovest317
2014-10-09 08:44:13
有一个集合如
id money
1 33333
2 44444
3 55555
4 66666
输入了一个88888的数字
要计算出所有小于等于这个数字的记录.并分组归类...
一组有多条记录..但这几条记录的money的合要小于等于我输入的数字..需要把所有的分组都列出来...
...全文
300
16
打赏
收藏
问个从集合中计算指定数字并分组的方法
有一个集合如 id money 1 33333 2 44444 3 55555 4 66666 输入了一个88888的数字 要计算出所有小于等于这个数字的记录.并分组归类... 一组有多条记录..但这几条记录的money的合要小于等于我输入的数字..需要把所有的分组都列出来...
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lovest317
2014-10-17
打赏
举报
回复
还是没结果...哎.
Norris_Zhang
2014-10-13
打赏
举报
回复
想到一个思路,没考虑效率。 首先这个数据集按value排序 5 11111 0 22222 1 33333 2 44444 3 55555 4 66666 现在输入55555 先循环一次,找到原集合中第一个大于输入55555的值的位置:5(位置下标从0开始) 这个位置之前的子集合是我们要计算的数据,之后的数据不用考虑。 然后根据这个下标5得知一共有5条数据,然后就是一个递归排列组合问题了,把所有可能的组合都计算一个和,如果和小于输入55555,则该组合是结果集的一个项。
attilax
2014-10-13
打赏
举报
回复
linq是王道,解决这类型问题。。。
lovest317
2014-10-13
打赏
举报
回复
哎...哪位大神能来个好算法不....
lovest317
2014-10-11
打赏
举报
回复
比如: id money 5 11111 0 22222 1 33333 2 44444 3 55555 4 66666 输入 55555 分为 第一组 0 22222 1 33333 第二组 3 55555 第三组 5 11111 2 44444 第四组 5 11111 1 33333 像这样的... 只要每一组的合小于或等于指定的值就可以.也可以说每一条记录本身就是一个组合..只是可以忽略掉
scmod
2014-10-11
打赏
举报
回复
想了想发现我连怎么取其中任意个数相加求和都不会。。。。 lz你用自己那个加个多线程有用不。。 前面几楼的看了看不懂。。。 sql也写不来。。 智商好捉急啊。。。
scmod
2014-10-11
打赏
举报
回复
哦是这个意思。。。。 那不就是把小于等于的都可能组合都列出来么。。 然后那个集合有序不
lovest317
2014-10-11
打赏
举报
回复
求大神告知啊...
lovest317
2014-10-10
打赏
举报
回复
有什么直接点的方法吗.....就是用存JAVA...
howsun_zh
2014-10-10
打赏
举报
回复
给一个比较笨的方案,但性能绝对没问题。 假设原Map对象为originalMap,现在新建一个与originalMap完全相反的Map,假设叫newMap,newMap的key为originalMap的value,newMap的value为Set<Integer>,即originalMap的key的集合。 搜索时采用二分算法,由于newMap的key是整数,默认是从小到大排好的,现将newMap的key分成左右树,递归对比,符合条件后返回所有左边的集合就是结果。
scmod
2014-10-10
打赏
举报
回复
看不懂啊。。 为什么有两次分组 想要的结果是那样? 比如1,2,3,4 输入6 出来第一组是: {1;1,2;1,3;1,4,;1,2,3} 第二组 {2;1,2;2,3;2,4;1,2,3} 像这样第一次分组按单个? 分组里面分组计算和?
lovest317
2014-10-10
打赏
举报
回复
对的...现在数据有一千条左右.....会有很多结果...所以想求一个好点的方法...现在写的如果几十条记录没问题..上了一百就GC了....
ningbohezhijun
2014-10-10
打赏
举报
回复
这个分组有要求吗,不然不是会存在多种分组的结果,不是吗? 比如: id money 0 22222 1 33333 2 44444 3 55555 4 66666 输入 88888,分组结果是?
lovest317
2014-10-10
打赏
举报
回复
没大神知道吗......
attilax
2014-10-09
打赏
举报
回复
比较好的办法是linq拉。。。类似sql的语法来查询集合。。。但是这个linq要你自己写,要求有的高。 还有个方法是,放入内存数据库,使用sql查询,easy。。推荐这个
lovest317
2014-10-09
打赏
举报
回复
自己顶一下....
【Java工具
方法
】给
集合
按数量
分组
本文介绍了一种将List
集合
按
指定
数量进行
分组
的
方法
,适用于大数据量处理或并发处理场景,通过示例展示了如何使用该
方法
将一个包含大量元素的List分割成多个小List。
Java:List
分组
<将原来的
集合
进行
指定
分组
,分批运行>
本文介绍了如何在Java
中
使用List进行数据的平均
分组
和固定
分组
,以及如何利用ExecutorService和CountDownLatch实现线程并发处理,以提高性能。关键代码展示了如何在
分组
后对每个子列表执行操作并控制线程同步。,
C#开发-
集合
使用和技巧(三)
集合
扩展
方法
介绍
本文深入介绍了C#
中
Enumerable类的扩展
方法
,包括查询、数值聚合、
分组
、转换等多种
方法
,提供了丰富的示例代码,帮助开发者高效处理
集合
数据。
【Oracle】第4天 排序
分组
、
集合
本文深入讲解SQL查询的基础和高级技巧,包括执行顺序、排序、
分组
、
集合
操作等内容,并通过丰富的实例帮助读者掌握如何高效地进行数据检索和处理。
算法练习题目:问题描述 小M面对一组从 1 到 9 的
数字
,这些
数字
被分成多个小组,并从每个小组
中
选择一个
数字
组成一个新的数。目标是使得这个新数的各位
数字
之和为偶数。任务是
计算
出有多少种不同的
分组
和选
博客提出一个算法问题,小M面对1到9的
数字
分组
,需从每组选一个
数字
组成新数,使新数各位
数字
之和为偶数,给出了具体的输入输出测试样例,如输入[123, 456, 789]输出14等,但未给出问题的解答。
Java EE
67,535
社区成员
225,851
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章