用Iterator方法区分Set中的元素是否重复

sbtmkdai 2008-11-12 01:40:43
问:Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别
答:Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。
equals()是判读两个Set是否相等
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值.

这段话不是很懂,前辈们可否能有2段简单的程序分别解释一下Set的Iterator()方法和equals()方法呢?
到底是如何判断Set里面的元素是否重复呢?是需要我自己写程序控制Set里不能元素重复吗?
...全文
2461 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
chillysll 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

Hashset<Student> set = new Hashset<Student>();
String str = "tr";
set.add(str);
上面的add()方法是不能添加成功的,请哪位大虾提示下如何将str添加到set中。谢谢。。。
[/Quote]

set.add(new String("tr"));
xp_simon 2011-02-09
  • 打赏
  • 举报
回复
Hashset<Student> set = new Hashset<Student>();
String str = "tr";
set.add(str);
上面的add()方法是不能添加成功的,请哪位大虾提示下如何将str添加到set中。谢谢。。。
MadProgramer 2009-11-08
  • 打赏
  • 举报
回复
ch_zhijian 你好,你的意思是只用执行了iterator方法后,对象才添加到set中吗,那么,add方法什么用呢
ch_zhijian 2008-12-24
  • 打赏
  • 举报
回复
package collection.set.sort;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Set_Iterator_Test {

/**
* 一个简单的例子测试Set.iterator()方法用来区分Set里的元素是是否重复的。
* @param args
*/
public static void main(String[] args) {
Set set =new HashSet();
set.add("1");
set.add("1");
set.add("2");
Iterator it =set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}

/*
* 从结果可看到:
* Set.iterator()方法对Set中的元素进行迭代,在迭代过程中判断其元素是否重复,重复的元素就不加到该Set中。
*/

sbtmkdai 2008-11-12
  • 打赏
  • 举报
回复
感谢2楼的代码!还是代码解释起来方便啊!
shenjie1989 2008-11-12
  • 打赏
  • 举报
回复
==比较的是对象吧 equals比较的是对象的内容。
tujiyue 2008-11-12
  • 打赏
  • 举报
回复
用contains()方法
renmms 2008-11-12
  • 打赏
  • 举报
回复
总结一下:

1. equals() 判断对象内容

2. == 判断对象引用

3. Iterator 用来遍历容器中的元素
jiaping108 2008-11-12
  • 打赏
  • 举报
回复

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();
}

}
justinavril 2008-11-12
  • 打赏
  • 举报
回复
==比较的是对象吧 equals比较的是里面的值 可以这样去理解吧

而且Set里确实是没有重复的 好像你看的是Set的实现代码吧? 那当然最直接的就是迭代判断有没有重复了 重复的就不加入Set中

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧