ArrayList与HashSet都是Collections类的子类,Collection类提供了许多常用的方法,例如contains()就是其中一个!我没有看过这两个类的contains()具体是如何实现的,但是通过数据结构我觉得应该是这个样子,ArrayList也就是一个数组,遍历整个数组,如果数组中存在这样一个元素equals(Object obj);那么就是true否则返回false.而HashSet的话,只需要比较key就能确定是否含有该元素了!
eaquals()为true的话,一定有相同的HashCode的!
没有什么区别 都是检索值是否子集合中出现过
你虽然是new了2个Foo();咋一看是相同的,但是他们是指向不同的值域