我想存储项目的ID及其相应的坐标.为此,我使用的是TreeMap,其中Coordinates是一个包含int x和int y的类.现在,为了将数据插入地图,我可以写:
treeMapObject.put(5,new BasicRow(30,90));
Run Code Online (Sandbox Code Playgroud)
或者我必须写:
treeMapObject.put(new Integer(5),new BasicRow(30,90));
Run Code Online (Sandbox Code Playgroud)
我想只有第二个是正确的,因为Maps处理对象.但现在的问题是,我说有以下代码:
treeMapObject.put(new Integer(5),new BasicRow(30,90));
treeMapObject.put(new Integer(5),new BasicRow(45,85));
Run Code Online (Sandbox Code Playgroud)
在这种情况下会发生什么?
实际上两个版本都是正确的,因为你的Java编译器将为你执行所谓的"自动装箱":如果你提供一个int,需要一个Integer,java会自动将这个int包装在一个Integer对象中.反过来也是如此(已在Java 5中引入.如果您使用的是不应该编译的旧Java版本.).
对于您的第二个问题:您首先添加的条目将被覆盖.