Map<String, Date> map = new HashMap<>();怎么对其按照时间进行排序 并取出第一个和最后一个
时间: 2023-02-21 22:29:34 浏览: 204
对于Map<String, Date> map = new HashMap<>();要对其按照时间进行排序, 可以使用TreeMap,因为TreeMap有自然排序的功能,并且可以自动对键进行排序,你可以将HashMap转换为TreeMap然后再操作。
下面是一个示例代码:
```
Map<String, Date> map = new HashMap<>();
// ... 往map中添加数据
Map<String, Date> sortedMap = new TreeMap<>(new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return map.get(s1).compareTo(map.get(s2));
}
});
sortedMap.putAll(map);
// 取出第一个和最后一个
String firstKey = sortedMap.keySet().iterator().next();
String lastKey = ((TreeMap<String, Date>) sortedMap).lastKey();
Date firstValue = sortedMap.get(firstKey);
Date lastValue = sortedMap.get(lastKey);
```
如果你想对日期排序,可以在Comparator中将日期进行比较。
相关问题
private static final long serialVersionUID = 1L; private JPanel contentPane; private JTextField yearField; private JTextField monthField; private JTextArea textArea; private JTextField idField; private JTextField typeField; private JTextField costField; private JTextField keywordField; private Map<Date, List<Account>> accounts = new HashMap<>(); private Map<String, Double> keywordSum = new HashMap<>(); private Map<String, Double> typeSum = new HashMap<>();
这段代码看起来是Java语言中某个类的成员变量和字段定义,其中包含了一些文本框、面板、文本域等控件的引用,以及一些用于记录账目信息的Map。可能是一个财务管理软件的一部分,用于记录和统计用户的账目信息。其中,accounts用于记录每一天的账目列表,keywordSum和typeSum则用于记录每个关键词和账目类型的总金额。
List<Map<String, Object>> whereQuery = new ArrayList<>(); Map<String, Object> map = new HashMap<>(); map.put("column", "owner_code"); map.put("operator", "="); map.put("value", logisticsAccount.getExt1()); Map<String, Object> map1 = new HashMap<>(); map1.put("column", "base_code"); map1.put("operator", "="); map1.put("value", "101"); Map<String, Object> map2 = new HashMap<>(); map2.put("column", "shipment_date"); map2.put("operator", "="); map2.put("value", "20200725"); Map<String, Object> map3 = new HashMap<>(); map3.put("column", "actual_sent_flag"); map3.put("operator", "="); map3.put("value", 2); whereQuery.add(map); whereQuery.add(map1); whereQuery.add(map2); whereQuery.add(map3); request.put("where_query", whereQuery);怎么去优化
这段代码主要是对查询条件进行封装,其中包含多个 Map 对象。优化可以从以下几个方面考虑:
1. 对于相同类型的查询条件,可以将其封装成一个对象,避免重复代码。例如,可以创建一个 QueryCondition 类,包含 column、operator、value 三个属性,并提供相应的 getter 和 setter 方法。
2. 为了提高代码的可读性和可维护性,可以将查询条件的封装操作单独提取出来,封装成一个方法,将 whereQuery 的构造过程放到该方法中。这样可以减少代码的重复性,提高代码的可复用性。
3. 如果查询条件中的值是变量,而不是固定的常量,可以将其封装成一个对象,并提供相应的 getter 和 setter 方法。这样可以方便地修改查询条件,提高代码的灵活性。
4. 如果查询条件比较复杂,可以考虑使用框架提供的查询语句构建器,例如 Hibernate Criteria API 或 MyBatis 的动态 SQL。这样可以避免手动拼接 SQL 语句,提高代码的可读性和可维护性。
阅读全文