`
itsoul
  • 浏览: 218087 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TreeMap key中存实体的排序问题

阅读更多
TreeMap作为键值对存储,当键中放的是整数和字符串没什么问题,当键为实体时,需要实现Comparator接口的compare方法,并且在这个实体类里重写的equals、hashCode方法,如声明如下TreeMap:

   Map<Model, List<Model>> orderList = Collections.synchronizedMap(new TreeMap<Model, List<Model>>();
//Collections.synchronizedMap这里这么做是为了保证线程安全

在Model实体类里放的equals方法:
public int hashCode(){
   //你自己的hashCode算法;
}
public int compare(Object obj){
   
     //compare实现
      return 0;
}
 public boolean equals(Object obj){
     //equals算法
     return false;
}
 
以上得到hashCode的算法和equals的算法最好是比较真实的算法, 可以根据该model里的某个具体的属性hashCode来比较,最好是不要返回该类的hashCode,这样就没啥意义了。
分享到:
评论

相关推荐

    Java中实现参数名ASCII码从小到大排序(字典序).doc

    在Java编程中,有时我们需要对一组参数按照字典顺序(ASCII码值从小到大)进行排序,例如在创建签名或构建URL查询字符串时。这里提供了一个名为`createSign`的方法,它接受一个`Map, Object&gt;`类型的参数,并返回一个...

    在Java 8中将List转换为Map对象方法

    在Java 8中将List转换为Map对象方法 ...在上面的代码中,我们使用了TreeMap来对键进行自然排序。 在Java 8中将List转换为Map对象方法非常多样化,我们可以根据实际情况选择合适的方法来实现这种转换。

    java8 stream自定义分组求和并排序的实现

    `TreeMap` 是一个有序的映射表,可以根据 key 的自然顺序对结果进行排序。在本文中,我们使用 `compareTo` 方法来对 `GroupDetailDTO` 对象进行排序,该方法可以根据 `headsetId` 和 `time` 属性对对象进行排序。 ...

    hibernate中容器映射技术

    在映射文件中,我们通常使用`&lt;set&gt;`标签来定义这个关系,指定关联的实体类、外键生成策略、排序方式等属性。同时,还需要在实体类中添加对应的集合属性,并使用`@OneToMany`或`@ManyToMany`注解进行标注。 接下来,...

    java 文件处理代码

    java 遍历 实体文件 排序方法 import java.io.File; import java.util.Date; import java.util.Iterator; import java.util.Set; import java.util.TreeMap; public class TT { private static final long ...

    2022面试题6java背诵版本.doc

    面向对象编程(OOP)是一种编程范式,以对象为中心,通过类和对象表示现实世界中的实体和它们之间的关系,强调封装、继承和多态等特性,使代码更加模块化和可复用。 11. **访问数据库的其他方式**: - JPA(Java ...

    详解Java的Hibernat框架中的Map映射与SortedMap映射

    在Hibernate中,Map映射用于表示一个实体对象可以拥有多个关联对象,这些对象通过唯一的键值进行区分。例如,在上述的`Employee`类中,`certificates`属性就是一个Map,用来存储员工的证书信息。在映射配置文件中,...

    Java Map接口及其实现类原理解析

    TreeMap是基于红黑树的Map接口实现类,它提供了一个有序的映射关系,可以根据键的自然顺序或比较器来排序。TreeMap不允许null键,但允许null值。底层数据结构是红黑树,保证键唯一,且可以根据键的自然顺序或比较器...

    java提取数据库表字段信息的工具类.docx

    HashMap不保证元素的顺序,而TreeMap按照键的自然顺序或自定义比较器进行排序。LinkedHashMap则按照元素添加的顺序(FIFO,先进先出)来维护其内部顺序,这在构建字段列表时很有用。 这个工具类使用了Java的JDBC ...

    JavaDSAGit:这是针对Java数据结构的

    10. **排序算法**:Java中包含了多种排序算法,如快速排序、归并排序、冒泡排序和插入排序。了解和掌握这些排序算法可以帮助开发者根据场景选择最佳实现。 11. **并发控制**:在多线程环境中,数据结构需要考虑线程...

Global site tag (gtag.js) - Google Analytics