无法将值放入TreeMap Java

时间:2018-03-22 01:32:01

标签: java

我有

Treemap<String, Student>

学生所在的班级

TreeMap<Integer, Person>

Person是对象的学生。 当我做的时候

class.put(String, students)

我收到错误:

no suitable method found for put(String, TreeMap<Integer, Object>) java

2 个答案:

答案 0 :(得分:0)

Treemap<String, Studdent>是一个集合,在本例中是一个映射,其中Student类的对象将使用String值作为键存储。您所犯的错误是使用字符串类名作为键。所以你应该这样做:

Person = new Person(name, ssn, birthday);
int studentId = 1297;
TreeMap<Integer,Person> student = new TreeMap<>();
student.put(studentId, Person);
String className = "classOf2018";
TreeMap<String, TreeMap<Integer,Person>> class2018 = new TreeMap<>();   
class2018.put(className, student);

答案 1 :(得分:0)

您的对象class属于TreeMap<String, Student>类型而非TreeMap<String, TreeMap<Integer, Person>

当您执行class.put(String, students)时,您正在执行的操作是,您正在添加String类型的键,该键映射到类型TreeMap<Integer, Person>的值,因为它会引发错误而您的地图object期望值为Student的值。

class的类型更改为TreeMap<String, TreeMap<Integer, Person>或将Student对象添加为class的值。

希望这有帮助。