Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在列表中动态迭代

在列表中动态迭代
EN

Stack Overflow用户
提问于 2014-01-27 17:25:25
回答 1查看 69关注 0票数 0

我有一个方法,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List<AbcObject> aaList= session.createCriteria(AbcObject.class)

aaList包含如下元素:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
t_id   value
11      3
12      20
14      60
15      27    ------->(3+20+60+27=100), here min=11 & max=15
18      40  
22      20
33      40
45      20   -------->(40+20+40+20=100), here min=18 & max=45

我必须迭代这个列表,如果value的运行总数达到100,那么一个元素将被添加到另一个列表中,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
min     max
11      15
18      45

请注意,完成除法的100值需要是可配置的。

第一个元素本身的值也可能是100。在这种情况下,minmax将具有相同的值。

我想出了以下方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
final int BARRIER = 100;

//I am going to assume there are getter methods in your AbcObject and 
//that all values are greater than 0
List<int[]> minMaxs = new List<int[]>();
int sum = 0; 
int min = 0;
for (AbcObject obj: aaList) {
    if (sum == 0) {
        //start over, remember min
        min = obj.getT_id();
    }
    //add value to sum
    sum += obj.getValue();
    if (sum >= BARRIER) {
        //now we need to start again, remember what we got
        minMaxs.add(new int[]{min, obj.getT_id()});
        //reset
        min = 0;
        sum = 0;
    }
}

我发现的另一种方法是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
final int BARRIER = 100;

//I am going to assume there are getter methods in your AbcObject and 
//that all values are greater than 0
List<AbcObject> minMaxs = new List<AbcObject>();
int sum = 0; 
int min = 0;
for (AbcObject obj: aaList) {
    if (sum == 0) {
        //start over, remember min
        min = obj.getT_id();
    }
    //add value to sum
    sum += obj.getValue();
    if (sum >= BARRIER) {
        //now we need to start again, remember what we got
        minMaxs.add(new AbcObject(min, obj.getT_id()));
        //reset
        min = 0;
        sum = 0;
    }
}

有没有更好的方法?

EN

回答 1

Stack Overflow用户

发布于 2014-01-27 17:35:21

您的代码看起来非常合理,并且易于理解。我看不出有迫切的改变的必要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21387457

复制
相关文章
【说站】python迭代中删除列表项目
2、通过分配给slice somelist[:],改变现有列表以仅包含想要的项目。
很酷的站长
2022/11/24
1.6K0
【说站】python迭代中删除列表项目
Flutter 中 ListView 动态数据生成列表
1. 循环数据,生成列表效果。 import 'package:flutter/material.dart'; void main(){ runApp(MyApp()); } // 抽离成一个单独的组件 class MyApp extends StatelessWidget{ @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold(
越陌度阡
2020/12/22
3.3K0
Flutter 中 ListView 动态数据生成列表
Flutter中ListView 动态数据生成列表
1. 循环数据,生成列表效果。 import 'package:flutter/material.dart'; void main(){ runApp(MyApp()); } // 抽离成一个单独的组件 class MyApp extends StatelessWidget{ @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold(
越陌度阡
2022/05/06
1.7K0
Flutter中ListView 动态数据生成列表
可迭代对象 python_列表是可迭代对象吗
引出问题: ​如下面所示,存在一个类,并且产生了一个对象,现在想用for循环实现对象的迭代,结果报错了
全栈程序员站长
2022/09/21
9230
2018年8月23日python中列表的高级操作:列表推导式,列表生成器,列表迭代器
列表在我们平常的编程中经常会用到,多用于临时存储一些程序需要的数据, 向列表中添加数据时,有多种方式: 1.数据少的话直接定义列表中的数据 my1 = [0, 1, 2, 3, 4, 5] 2.当数据稍微多点的话可以用for循环的方式向列表中添加数据,但是操作比较繁琐     my2 = list() for i in range(100):          my2.append(i)
武军超
2018/09/27
1.4K0
在iview中实现列表远程排序
iview中可以通过给列表中每个字段设置sortable: true可以实现字段排序,但是当列表中的数据量比较多时,列表中会有分页,此时只能对当前页进行排序,针对这个问题,iview中有一个远程排序功能,可以通过远程排序实现多页数据的排序
用户3880999
2023/04/13
1.9K0
在iview中实现列表远程排序
python 基础 切片 迭代 列表生成式
对list 进行切片   如列表     L = ['Adam', 'Lisa', 'Bart', 'Paul']     L[0:3]     ['Adam', 'Lisa', 'Bart']     L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。     即索引0,1,2,正好是3个元素。   如果第一个索引是0,还可以省略:     L[:3]     ['Adam', 'Lisa', 'Bart']     切片操作还可以指定第三个参数:       L[::2]       [
用户1197315
2018/04/04
8990
useDynamicList vue 动态列表
动态列表和普通列表的主要区别在于,动态列表内部维护一条自增列表。该列表映射了元素的添加顺序。提供基础列表函数及其他操作工具。 例如: marge等 Uesage <style> *{ margin: 0; padding: 0; } li{ list-style: none; } #app { font-family: Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz
copy_left
2020/04/30
6700
递归迭代动态规划「建议收藏」
递归:程序调用自身,从顶部将问题分解,其问题与其子问题是同一概念。通过解决掉所有分解出来的小问题,来解决整个问题。
全栈程序员站长
2022/11/17
3120
[译]在Solidity中创建无限制列表
在大多数应用中,使用列表相当简单。大多数语言都提供用于处理列表的库,我们不必担心使用细节。但是,智能合约不同于“大多数应用程序”,我们需要特别注意区块链施加的设计限制。
Tiny熊
2020/09/14
3.2K0
[译]在Solidity中创建无限制列表
Fiddler 在列表中显示图片尺寸
https://docs.telerik.com/fiddler/knowledgebase/fiddlerscript/customizesessionslist
卓越笔记
2023/02/18
4.1K0
Fiddler 在列表中显示图片尺寸
【说站】splitlines在python中返回列表
2、返回一个是否包含换行符的列表,如果参数keepends为False,则不包含换行符。
很酷的站长
2022/11/23
2.4K0
Java笔记-列表迭代器里的“指针”
 今天在学习集合分支List的特有迭代器ListIterator时遇到两个疑惑,这是第二个,第一个问题点击传送,建议先看看第一个再来这探讨第二个问题哈哈哈  由于前面讲过,这里就只引入我们要讨论的主角void add()和E next()
HCG_Sky
2022/03/31
6350
Java笔记-列表迭代器里的“指针”
动态代理在Android中的运用
动态代理是一种在编程中非常有用的设计模式,它允许你在运行时创建一个代理对象来代替原始对象,以便在方法调用前后执行额外的逻辑。在Android开发中,动态代理可以用于各种用例,如性能监控、AOP(面向切面编程)和事件处理。本文将深入探讨Android动态代理的原理、用途和实际示例。
Rouse
2023/09/12
9740
动态代理在Android中的运用
RL实践1——动态规划值迭代
动态规划的使用条件时MDP已知,在简单游戏中,这个条件时显然成立的 使用Value iteration的方法求解每个状态的价值函数,迭代收敛之后,对应最优策略生成。
列夫托尔斯昊
2020/09/07
5090
【leetcode】分治/动态规划/贪心/递归/迭代
算法策略 分治:自顶向下,分而治之。常用递归。 动态规划(DP):类似于分治,但会存储每个子问题的解,避免重复计算。常用迭代。 贪心:类似于DP,但每步都求局部最优。计算次数往往会比DP少。凡是用贪心能解决的,DP都能解决。 实现手段 递归:A调用A自身。所有的递归都可以转化成迭代。 迭代:A循环调用B,并不断更新变量的旧值。
JNingWei
2020/06/02
6080
探索异步迭代器在 Node.js 中的使用
上一节讲解了迭代器的使用,如果对迭代器还不够了解的可以在回顾下《从理解到实现轻松掌握 ES6 中的迭代器》,目前在 JavaScript 中还没有被默认设定 [Symbol.asyncIterator] 属性的内建对象,但是在 Node.js 中已有部分核心模块(Stream、Events)和一些第三方 NPM 模块(mongodb)已支持 Symbol.asyncIterator 属性。本文也是探索异步迭代器在 Node.js 中的都有哪些使用场景,欢迎留言探讨。
五月君
2020/12/14
7.6K0
探索异步迭代器在 Node.js 中的使用
迭代列表不要For循环,这是Python列表推导式最基本的概念
列表解析式(List comprehension)或者称为列表推导式,是 Python 中非常强大和优雅的方法。它可以基于现有的列表做一些操作,从而快速创建新列表。在我们第一次见到列表推导式时,可能会感觉这种方法非常炫酷,因此写列表推导式是非常爽的一件事。
机器之心
2019/09/19
1.4K0
迭代列表不要For循环,这是Python列表推导式最基本的概念
注意!​在python中不要所有操作都用列表
列表十分方便、它的结构清晰灵活。而且学习列表推导有着一种纯粹的乐趣,就像是中了数据类型中的头奖。
昱良
2020/02/27
2K0
在Python中,不用while和for循环遍历列表
s1=s.encode(encoding='utf-8').decode('unicode_escape')
用户2337871
2019/07/19
5.5K0

相似问题

在C#中迭代动态修改列表

75

动态迭代嵌套子列表

12

动态字段thymeleaf列表迭代

26

在列表中迭代并在动态变量中存储值

10

动态生成列表名称时迭代列表

37
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文