Java 使用字符串和列表bean作为参数对树映射中的值进行排序

Java 使用字符串和列表bean作为参数对树映射中的值进行排序,java,hashmap,comparator,treemap,comparable,Java,Hashmap,Comparator,Treemap,Comparable,我上一个问题的延续 我正在尝试一种解决方案,根据树形图的值对其进行排序 让我宣布这张地图 Map<String, List<Bean>> sortedBeanMap =new TreeMap<String,List<Bean>>(); ValueComparator类 public class ValueComparator implements Comparator { Map map; public ValueComparator

我上一个问题的延续

我正在尝试一种解决方案,根据树形图的值对其进行排序

让我宣布这张地图

Map<String, List<Bean>> sortedBeanMap =new TreeMap<String,List<Bean>>();
ValueComparator类

 public class ValueComparator implements Comparator {
  Map map;

  public ValueComparator(Map map){
    this.map = map;
  }
  public int compare(Object keyA, Object keyB){

    Comparable valueA = (Comparable) map.get(keyA);
    Comparable valueB = (Comparable) map.get(keyB);

    System.out.println(valueA +" - "+valueB);

    return valueA.compareTo(valueB);

  }
}
我知道comparable to Work的值应该是string类型。但在我的例子中,它将是一个bean列表。那么如何让comparator在我的例子中工作呢

我被困在这里面有一段时间了。任何建议和想法都会很好


提前感谢大家…

因为这是家庭作业,所以不会提供完整的代码


你在正确的轨道上。为您的对象创建一个类,并实现可比较对象所需的方法。您可以决定两个具有bean列表的对象的“顺序”:应该小于另一个,因为列表元素的数量较少;因为单个列表元素的名称“更小”;还是另一个定义良好的排序?

您是指带有getter和setter方法的bean对象类。如果您有两个列表元素,那么它已经被创建了,哪一个“更小”(您如何确定?)。注意:不要用代码回答,用英语在列表中循环回答,并将列表元素与另一个元素进行比较,找出哪个元素更小..好。。现在,在两个列表的比较器中实现“比较算法”,这条路径将帮助您前进
 public class ValueComparator implements Comparator {
  Map map;

  public ValueComparator(Map map){
    this.map = map;
  }
  public int compare(Object keyA, Object keyB){

    Comparable valueA = (Comparable) map.get(keyA);
    Comparable valueB = (Comparable) map.get(keyB);

    System.out.println(valueA +" - "+valueB);

    return valueA.compareTo(valueB);

  }
}