我使用了这种直截了当的方法:
Collection<Integer> aCollection = Arrays.asList(1,2,3,4,5,6);
Integer a = new Integer(5);
if( aCollection.contains(a) )
System.out.println("aCollection contains 5");
结果是“aCollection 包含 5”。整数不是整个系统中的唯一对象,但在这种情况下,“5”在Collection<Integer>
和new Integer(5)
实际上是对同一个对象的引用吗?我可以安全地假设任何集合在调用时都会以这种方式运行.contains()
吗?
我不确定,因为按==
结果比较引用和值时:
3 == new Integer(3)
new Integer(3) != new Integer(3)
new Integer(3) == 3