나는 문자열의 길이에 따라 TreeMap에서 사용자 정의 주문을 시도했습니다. 다른 문자열에도 불구하고 문자열의 길이가 같으면 하나의 Key 만 얻는 이유는 무엇입니까?Java에서 TreeMap에서 오버로드하는 동안 Keyset에서 하나의 키만 가져 오는 이유는 무엇입니까?
어떻게 수정합니까? equals meth0d에 대한 영향은 무엇입니까? 사용되거나 향후 compareTo가 될 것입니다.
코드 :
import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;
public class Student implements Comparable {
int RollNo;
String Name;
public Student(int RollNo, String Name) {
this.RollNo = RollNo;
this.Name = Name;
}
public int compareTo(Object arg0) {
Student str = (Student) arg0;
return Integer.valueOf(str.Name.length()).compareTo(Integer.valueOf(this.Name.length()));
}
public static void main(String[] args) {
Map<Student, Integer> mp = new TreeMap<Student, Integer>();
mp.put(new Student(1, "Sameer"), 1);
mp.put(new Student(2, "Aameer"), 2);
for(Student st : mp.keySet()){
System.out.println((st.Name));
}
}
}
은 BTW -; this.Name.length '()'는 'compareTo' str.Name.length를 반환()로 wriiten 수있다. – PeterMmm