谜题一之答案,分析过程,以及经验教训 答案 (b)100 分析过程 1 在Set中加入的是一个Short值,但是删除的却是Integer的值。(译者:从留言中,很高兴看到有些朋友看到了这一点) 2 此行程序,s.remove(i-1),中的i-1是一个返回值为int的指示。如果i是short或byte类型,当它与int或long做算术运算时,返回的一定是int或long类型的值。 3 在执行s.remove方法时,上面的int值将被autobox成一个Integer对象。 4 注意,包含值1的Short对象和包含值1的Integer对象在比较中不被认为是对等的。 5 在Set中加入Short对象后,再删除Integer对象,后者的命令是不会被运行的(no-op)。编译器也不会报错。 经验教训 1 在Java1.5中,Set.....
【本文翻译仅为外语学习及阅读目的,原文作者个人观点与译者及译言网无关】