List<Map<String,Object>> orderLogisticInfo = orderLogisticSynService.findOrderLogisticInfo(orderLogisticSynEntity); orderLogisticInfo 的结果是 { “LogisticsInfo”: “包装”, “time”: 1686037634107 }, { “LogisticsInfo”: “拣货”, “time”: 1686037438490 }, 如何根据time排序得到新的列表
时间: 2023-10-09 17:05:21 浏览: 62
您可以使用Java中的Collections.sort()方法来根据Map中的“time”键进行排序。您可以按以下方式操作:
1. 将List<Map<String, Object>>转换为List对象。
2. 创建一个Comparator对象,用来比较Map中的“time”键。
3. 使用Collections.sort()方法对List进行排序,传递刚刚创建的Comparator对象作为参数。
4. 排序后的List中的元素即为按照“time”键排序后的结果。
以下是示例代码:
```
List<Map<String, Object>> orderLogisticInfo = orderLogisticSynService.findOrderLogisticInfo(orderLogisticSynEntity);
List<Map<String, Object>> sortedList = new ArrayList<>(orderLogisticInfo);
Comparator<Map<String, Object>> timeComparator = (m1, m2) -> ((Long) m1.get("time")).compareTo((Long) m2.get("time"));
Collections.sort(sortedList, timeComparator);
// sortedList即为按照“time”键排序后的结果
```
相关问题
public ZLNumber zlNumber(String token){ //获取测试地址 String checkTokenUrl = pendUrlConfig.getCheckTokenUrl(); ResultData<List<Map<String, Object>>> check = HttpUtil.check(token, checkTokenUrl); List<Map<String, Object>> data = check.getData(); for (Map<String, Object> datum : data) { Object code = datum.get("code"); } }将上述代码中的·code与字符串1进行比较,如果一样则输出比对成功的代码如何实现
您可以通过使用`equals`方法将`code`与字符串`"1"`进行比较,如果相等则输出比对成功的代码。以下是您可以使用的示例代码:
```java
public ZLNumber zlNumber(String token){
//获取测试地址
String checkTokenUrl = pendUrlConfig.getCheckTokenUrl();
ResultData<List<Map<String, Object>>> check = HttpUtil.check(token, checkTokenUrl);
List<Map<String, Object>> data = check.getData();
for (Map<String, Object> datum : data) {
Object code = datum.get("code");
if ("1".equals(code)) {
System.out.println("比对成功的代码");
// 执行比对成功的代码逻辑
}
}
}
```
在上述示例中,我们使用`equals`方法将`code`和字符串`"1"`进行比较。注意我们使用字符串`"1"`放在前面,这是为了避免`code`为`null`时抛出`NullPointerException`异常。如果比对成功,则可以在该条件下执行相应的代码逻辑。
List<Map<String, Object>> toBeInserted = new ArrayList<>(); // 获取当前接口查询结果 List<Map<String, Object>> result = jxMjKhTxService.selectJxMjkhTxData(constantProperties.getJsbh()); // 待插入的数据 // 待更新的数据 List<Map<String, Object>> toBeUpdated = new ArrayList<>(); // 待删除的数据 List<Map<String, Object>> toBeDeleted = new ArrayList<>(); if (lastResult.isEmpty()) { toBeInserted.addAll(result); } else { // 遍历上一次查 can not find local varialbl 如何修改
你需要先声明一个变量 `lastResult` 并将其赋值为上一次查询的结果,然后才能在代码中使用。可以像下面这样修改代码:
```
List<Map<String, Object>> toBeInserted = new ArrayList<>();
// 获取当前接口查询结果
List<Map<String, Object>> result = jxMjKhTxService.selectJxMjkhTxData(constantProperties.getJsbh());
// 上一次查询结果
List<Map<String, Object>> lastResult = ... // 这里需要根据实际情况来获取
// 待更新的数据
List<Map<String, Object>> toBeUpdated = new ArrayList<>();
// 待删除的数据
List<Map<String, Object>> toBeDeleted = new ArrayList<>();
if (lastResult.isEmpty()) {
toBeInserted.addAll(result);
} else {
// 遍历上一次查询结果,判断哪些数据需要插入、更新或删除
for (Map<String, Object> last : lastResult) {
String id = last.get("id").toString();
boolean exist = false;
for (Map<String, Object> cur : result) {
if (id.equals(cur.get("id").toString())) {
exist = true;
if (!last.equals(cur)) {
toBeUpdated.add(cur);
}
break;
}
}
if (!exist) {
toBeDeleted.add(last);
}
}
// 处理新增数据
for (Map<String, Object> cur : result) {
String id = cur.get("id").toString();
boolean exist = false;
for (Map<String, Object> last : lastResult) {
if (id.equals(last.get("id").toString())) {
exist = true;
break;
}
}
if (!exist) {
toBeInserted.add(cur);
}
}
}
// 插入待插入的数据
for (Map<String, Object> insert : toBeInserted) {
// TODO: 插入数据的操作
}
// 更新待更新的数据
for (Map<String, Object> update : toBeUpdated) {
// TODO: 更新数据的操作
}
// 删除待删除的数据
for (Map<String, Object> delete : toBeDeleted) {
// TODO: 删除数据的操作
}
```
请注意,这里只是一个示例代码,具体的实现需要根据实际情况进行调整。
阅读全文