1、什么是Set?(what)
Set是Collection容器的一个子接口,它不允许出现重复元素,当然也只允许有一个null对象。
2、如何来区分重复与否呢?(how)
“ 用 iterator() 方法来区分重复与否 ”,这是在网上流传的答案,个人认为这是个错误的答案。JPI中写的很明白:“set 不包含满足
e1.equals(e2) 的元素对 e1 和 e2 ”,由此可见回答使用equals()区分更合适。
3、为什么用equals()而不用==来区分?(why)
应该从它俩的区别谈起,[size=large]==比较的是变量的值,而equals比较的是对象的内容[/size]。再看一下Set里面存的是对象,还是对象的引用。所以应该用equals()来判断。
参考精彩技术文章:
《Java中的数据比较(再谈==与equals的区别)》
[url]http://blog.csdn.net/darxin/archive/2010/01/23/5247391.aspx[/url]
Set是Collection容器的一个子接口,它不允许出现重复元素,当然也只允许有一个null对象。
2、如何来区分重复与否呢?(how)
“ 用 iterator() 方法来区分重复与否 ”,这是在网上流传的答案,个人认为这是个错误的答案。JPI中写的很明白:“set 不包含满足
e1.equals(e2) 的元素对 e1 和 e2 ”,由此可见回答使用equals()区分更合适。
3、为什么用equals()而不用==来区分?(why)
应该从它俩的区别谈起,[size=large]==比较的是变量的值,而equals比较的是对象的内容[/size]。再看一下Set里面存的是对象,还是对象的引用。所以应该用equals()来判断。
参考精彩技术文章:
《Java中的数据比较(再谈==与equals的区别)》
[url]http://blog.csdn.net/darxin/archive/2010/01/23/5247391.aspx[/url]