for (Map<String, Object> map : dataList) { String lx = map.get("lx").toString(); double syts = 0.0; for (Map<String, Object> maps2 : dataList) { int i = DateUtil.compareDate(map.get("cjsj").toString(),maps2.get("cjsj").toString()); double qjts =0.0; if (StringUtils.equals(lx, "1") && i>=0) { String qjkssj = map.get("qjkssj").toString(); String qjjssj = map.get("qjjssj").toString(); String startTime = map.get("start_date").toString(); String endTime = map.get("end_date").toString(); StringBuffer stringBuffer = new StringBuffer(); StringBuffer append = stringBuffer.append(qjkssj).append(" ").append(startTime); StringBuffer stringBuffer1 = new StringBuffer(); StringBuffer append1 = stringBuffer1.append(qjjssj).append(" ").append(endTime); map.put("startTime", append); map.put("endTime", append1); map.put("jsts",map.get("qjts")); map.put("zjts",0); // qjts = Double.parseDouble("-"+(String) maps2.get("qjts")); qjts = Double.parseDouble("-" + maps2.get("qjts")); } else { map.put("jsts",0); map.put("zjts",map.get("qjts")); qjts = Double.parseDouble((String) maps2.get("qjts")); } syts +=qjts; } map.put("syts",syts);为什么syts 计算的不是负数
时间: 2024-02-14 13:08:24 浏览: 20
根据代码中的逻辑,syts是一个累加值,它在每次循环中都会加上qjts。在if语句块中,当lx等于1且i大于等于0时,qjts等于负数,因为代码中有"-"+,这是把负数转换成字符串的写法,所以syts会累加上负数。在else语句块中,qjts等于正数,因此syts会累加上正数。因此,syts计算的结果取决于qjts的正负性,而不是固定的正数或负数。
相关问题
根据一个List<String>集合的元素查找List<Map<String, Object>>,当List<String>元素与List<Map<String, Object>>相等时,返回相同元素的value的List集合
可以使用循环遍历的方式来实现根据一个List<String>集合的元素查找List<Map<String, Object>>,当List<String>元素与List<Map<String, Object>>相等时,返回相同元素的value的List集合。具体实现步骤如下:
1. 首先定义一个空的List集合,用于存储查找到的结果。
2. 循环遍历List<Map<String, Object>>,对于每一个Map对象,获取其中的key和value。
3. 判断List<String>集合中是否包含当前的key,如果包含,则将对应的value添加到结果集合中。
4. 最后返回结果集合。
代码示例:
```
public List<Object> findListByKeys(List<String> keys, List<Map<String, Object>> dataList) {
List<Object> result = new ArrayList<>();
for (Map<String, Object> data : dataList) {
for (Map.Entry<String, Object> entry : data.entrySet()) {
if (keys.contains(entry.getKey())) {
result.add(entry.getValue());
}
}
}
return result;
}
```
List<Map<String, Object>>中条件查找
你可以使用Java 8的流式操作来对List<Map<String, Object>>进行条件查找。可以使用filter()方法来过滤符合条件的元素,并使用collect()方法将过滤后的结果收集到一个新的List中。以下是一个示例代码:
```java
List<Map<String, Object>> dataList = new ArrayList<>();
// 添加数据到dataList
List<Map<String, Object>> filteredList = dataList.stream()
.filter(map -> map.get("key").equals("value")) // 替换"key"和"value"为你要过滤的条件
.collect(Collectors.toList());
// 打印过滤后的结果
for (Map<String, Object> map : filteredList) {
System.out.println(map);
}
```