当前位置: 首页 > 知识库问答 >
问题:

如果我们有不同的参数,是否有任何快捷方式来增加值的总和?

丘畅
2023-03-14

我有以下代码,在这个DemoClass中分别有val1、val2、val3和val4的getter和setter,如果列表中有多个值,我想添加每个值。例如:在第一次迭代val11=10000,第二次迭代val12=2000等等。现在我想要一个结果为val11 val12的解决方案,这应该适用于每个值,即val1、val2、val3和val4。

List<DemoClass> list= new ArrayList<DemoClass>();    
int count=1;
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
    DemoClass cls = (DemoClass) iterator.next();
    parameter.put("val1"+count, cls.getVal1());
    parameter.put("val2"+count, cls.getVal2());
    parameter.put("val3"+count, cls.getVal3());
    parameter.put("val4"+count, cls.getVal4());
    count++;
}

DemoClass。Java语言

public class DemoClass{
private String val1;
private String val2;
private String val3;
private String val4;

public String getVal1() {
    return val1;
}

public void setVal1(String val1) {
    this.val1= val1;
}

public String getVal2() {
    return val2;
}

public void setVal2(String val2) {
    this.val2= val2;
}

public String getVal3() {
    return val3;
}

public void setVal3(String val3) {
    this.val3= val3;
}

public String getval4() {
    return val4;
}
public void setVal4(String val4) {
    this.val4= val4;
}

}

共有1个答案

羊煜
2023-03-14

如果要获取每个值(val1、val2、val3和val4)中都包含的单个DemoClass实例,则如果您使用的是JAVA 8或更高版本(流API),则输入中DemoClass列表中对应属性的整数值之和将有助于此代码

public static DemoClass calcul(List<DemoClass> list) {
    DemoClass demoClass = new DemoClass();
    return list.stream().reduce(demoClass, (acc, curr) -> {
        DemoClass tmp = new DemoClass();
        tmp.setVal1(String.valueOf(Integer.parseInt(acc.getVal1()) + Integer.parseInt(curr.getVal1())));
        tmp.setVal2(String.valueOf(Integer.parseInt(acc.getVal2()) + Integer.parseInt(curr.getVal2())));
        tmp.setVal3(String.valueOf(Integer.parseInt(acc.getVal3()) + Integer.parseInt(curr.getVal3())));
        tmp.setVal4(String.valueOf(Integer.parseInt(acc.getVal4()) + Integer.parseInt(curr.getVal4())));
        return tmp;
    });
}

更新:

对于JAVA 7的解决方案,您需要添加所有参数构造函数

public static DemoClass calcul(List<DemoClass> list) {
    DemoClass demoClass = new DemoClass("0", "0", "0", "0");
    for(DemoClass curr : list) {
        demoClass.setVal1(String.valueOf(Integer.parseInt(demoClass.getVal1()) + Integer.parseInt(curr.getVal1())));
        demoClass.setVal2(String.valueOf(Integer.parseInt(demoClass.getVal2()) + Integer.parseInt(curr.getVal2())));
        demoClass.setVal3(String.valueOf(Integer.parseInt(demoClass.getVal3()) + Integer.parseInt(curr.getVal3())));
        demoClass.setVal4(String.valueOf(Integer.parseInt(demoClass.getVal4()) + Integer.parseInt(curr.getVal4())));
    }
    return demoClass;
}

要获取参数Map:

 类似资料:
  • 快捷文件.lnk 目标文件 [参数 [图标文件 [图标索引号 [启动选项 [键盘快捷键 [描述]]]]]] 创建一个指向 “目标文件” 的快捷方式 “快捷文件.lnk”,可以带 “参数” 参数。 用于快捷方式的图标为 “图标文件,图标索引号”;要使用默认图标的话把“图标文件” 和 “图标索引号” 设为空字串。 “启动选项” 可以是它们之一: SW_SHOWNORMAL, SW_SHOWMAXIMI

  • 我启用自动导入明确的关键字,并使用⌥输入以解决歧义。 有时,虽然我输入一个已经导入的关键字,并希望它是一个相同名称的导入,但来自不同的包。所以我正在寻找一个快捷方式,如Enter(我已经尝试过),它说:“从另一个包导入类......” 我意识到它必须是完全合格的(例如com.foo.bar.class),这很好。这样我就不用每次都复制/粘贴完全合格的类了。例如,在wire-to-UI服务实现中,在

  • 问题内容: 我经常发现自己使用mv重命名文件。例如 这样做时,我需要编写(确定,制表符完整)第二个参数的路径。在此示例中,它还不错,但是有时路径被深深地嵌套,并且似乎有很多额外的输入。 有没有更有效的方法可以做到这一点? 问题答案: 您可以这样使用历史记录扩展: 引入历史扩展。 指当前正在键入的命令 表示第一个参数 是获取“ head”的修饰符,即没有文件部分的目录 和中受支持。 文件: bash

  • 但是,即使页面正在加载,代码也不会等待。 我知道我可以检查特定的元素,以检查它是否可见/可点击等,但我正在寻找一些通用的解决方案

  • 假设我正在初始化一个类obj,如下所示: 可以这样初始化吗?我的意思是我们像这样初始化字符串和基元值,但我指的是任何类。我们怎样才能得到它们,这样它们就可以用在同一个类的某个方法中呢?

  • 我需要测试来运行该方法。我有这样的课: 我不能改变这门课。我不能将方法的可见性从private更改为public或向类中添加另一个方法。这门课不让我写一个字。 所以我写了这个测试: 提前道谢。