我是一名 Java 新手,在覆盖 Comparable 接口中的 compareTo 方法时遇到了一些麻烦。我的代码创建了一个将字符串与 int 相关联的 HashMap。我想覆盖 compareTo 以便 ArrayList 键中的字符串根据它们的 HashMap 值排序,而不是按字母顺序排序。但是,在此实现下,字符串仍按字母顺序排序。
哦,澄清一下,nameWeight 是 String,Integer 对的 HashMap。
有任何想法吗?
List<String> keys = new ArrayList<String>(nameWeight.keySet());
System.out.println(keys);
Collections.sort(keys);
public int compareTo(String that){
int gtr = 1;
int less = -1;
int eql = 0;
System.out.print(this);
System.out.print(that);
if(that=="JOHN")
return less;
int valThis = nameWeight.get(this);
int valThat = nameWeight.get(that);
if(valThis==valThat)
return eql;
if(valThis>valThat)
return gtr;
if(valThis<valThat)
return less;
return gtr;
}