用Iterator方法区分Set中的元素是否重复解决思路
用Iterator方法区分Set中的元素是否重复
问:Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别
答:Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。
equals()是判读两个Set是否相等
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值.
这段话不是很懂,前辈们可否能有2段简单的程序分别解释一下Set的Iterator()方法和equals()方法呢?
到底是如何判断Set里面的元素是否重复呢?是需要我自己写程序控制Set里不能元素重复吗?
------解决方案--------------------
==比较的是对象吧 equals比较的是里面的值 可以这样去理解吧
而且Set里确实是没有重复的 好像你看的是Set的实现代码吧? 那当然最直接的就是迭代判断有没有重复了 重复的就不加入Set中
------解决方案--------------------
问:Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别
答:Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。
equals()是判读两个Set是否相等
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值.
这段话不是很懂,前辈们可否能有2段简单的程序分别解释一下Set的Iterator()方法和equals()方法呢?
到底是如何判断Set里面的元素是否重复呢?是需要我自己写程序控制Set里不能元素重复吗?
------解决方案--------------------
==比较的是对象吧 equals比较的是里面的值 可以这样去理解吧
而且Set里确实是没有重复的 好像你看的是Set的实现代码吧? 那当然最直接的就是迭代判断有没有重复了 重复的就不加入Set中
------解决方案--------------------
- Java code
import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class SetTest { //结果输出为ELEM static void AddToSet(){ String str = "ELEM"; String str1 = new String("ELEM"); Set set = new HashSet(); Set setCompare = new HashSet(); set.add(str); set.add(str1); setCompare.add(str1); //Iterator是用来遍历容器中的元素的 Iterator itera = set.iterator(); Iterator iteraCompare = setCompare.iterator(); while(itera.hasNext()) { System.out.println((String)itera.next()); } while(iteraCompare.hasNext()) { System.out.println((String)iteraCompare.next()); } if(set.equals(setCompare)){ System.out.println("两个对象内容相同"); } if(set == setCompare){ System.out.println("两个对象相等"); } } public static void main(String[] args){ SetTest.AddToSet(); } }
------解决方案--------------------
总结一下:
1. equals() 判断对象内容
2. == 判断对象引用
3. Iterator 用来遍历容器中的元素
------解决方案--------------------
用contains()方法
------解决方案--------------------
==比较的是对象吧 equals比较的是对象的内容。