map.put(blendPlan.getOutputCode(), spec.getSpecValue()); for (VisPhyicalFormula formula:phyicalFormulaList) { if (formula.getInphysicalCode().equals(spec.getSpecCode())){ Argument At=new Argument("z="+String.valueOf(spec.getSpecValue())); Expression expression=new Expression(formula.getFormula(), At); map.put(blendPlan.getOutputCode(), (double) Math.round(expression.calculate()*100)*0.01); mXparser.consolePrintln(expression.getExpressionString()+"="+expression.calculate()); } } context.getBlendPlanSpecMap().put(blendPlan.getOutputCode() + "_" + spec.getSpecCode(), spec);
时间: 2024-04-14 22:31:21 浏览: 227
您在这段代码中使用了一个`map`对象来存储`blendPlan.getOutputCode()`和`spec.getSpecValue()`的键值对。然后,您遍历了一个`phyicalFormulaList`列表,对每个元素进行判断,如果`formula.getInphysicalCode()`等于`spec.getSpecCode()`,则执行一系列操作。
在这些操作中,您创建了一个`Argument`对象,将参数设置为`"z="+String.valueOf(spec.getSpecValue())`。然后,您创建了一个`Expression`对象,将公式设置为`formula.getFormula()`,参数为上述创建的`Argument`对象。接着,您使用`expression.calculate()`计算表达式的值,并将结果四舍五入到小数点后两位。
最后,您将计算结果存储到`map`中的`blendPlan.getOutputCode()`键对应的值中,并将表达式的字符串形式和计算结果打印到控制台。最后一行代码将`spec`对象存储到`context.getBlendPlanSpecMap()`中,键为`blendPlan.getOutputCode() + "_" + spec.getSpecCode()`。
相关问题
map.put()
`map.put()` 是一个 Java 中的方法,用于向 Map 中添加键值对。该方法接受两个参数,第一个参数为 key,第二个参数为 value。如果该 key 已经存在,则会用新的 value 替换旧的 value。如果该 key 不存在,则会向 Map 中添加一个新的键值对。`map` 可以是任何实现了 Map 接口的类的对象,例如 HashMap、TreeMap 等。`map.put()` 方法的使用示例如下:
```java
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
System.out.println(map); // 输出 {apple=1, banana=2, orange=3}
map.put("apple", 4); // 将 apple 对应的 value 由 1 改为 4
map.put("watermelon", 5); // 向 Map 中添加一个新的键值对
System.out.println(map); // 输出 {apple=4, banana=2, orange=3, watermelon=5}
```
map.put()括号里可以直接写数组吗
不可以直接将数组作为参数传递给map.put()方法。map.put()方法需要传递两个参数,一个是键,一个是值。如果要将整个数组存储到map中,可以使用循环遍历数组,并使用数组元素作为键,将每个元素存储到map中。示例代码如下:
```
int[] arr = {1, 2, 3};
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < arr.length; i++) {
map.put(i, arr[i]);
}
```
阅读全文