为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这个set数组中元素重复了?

import java.util.*;


public class SetTest {
 public Set<Course> setList;
 {
  setList=new HashSet<Course>();
 }
 public void testAdd(){
  Course c1 =new Course(4,"Add方法添加成功");
  setList.add(c1);
 }
 public void testAddAll(){
  Course[] c2 ={new Course(5,"addAll方法添加成功"),new Course(6,"addAll方法添加成功")};
  setList.addAll(Arrays.asList(c2));  
 }
 public void blForeach(){
  for(Object ob:setList){ 
   Course b3 = (Course) ob;
   System.out.println(b3.id+":"+b3.name);
  }
  System.out.println();
 }
}

主函数
System.out.println("集合Set遍历如下");
  SetTest s1 = new SetTest();
  s1.testAdd();
  s1.testAddAll();
  s1.testAdd();  //Set集合众的元素无序且不重复,此添加无效
  s1.blForeach();

运行结果
集合Set遍历如下
5:addAll方法添加成功
4:Add方法添加成功
4:Add方法添加成功
6:addAll方法添加成功

不是说set集合不能有重复的元素么。。。我这个程序是哪里错了呢?


正在回答

1 回答

  set添加的是引用 你调用两次add方法 创建了两个Course对象 

如果 你是    Course c1 =new Course(4,"Add方法添加成功");
  setList.add(c1);  setList.add(c1);

这样就添加无效  


0 回复 有任何疑惑可以回复我~
#1

Goldberg 提问者

晓得了晓得了 谢谢
2016-02-21 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么这个set数组中元素重复了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信