向Set接口中的HashSet集合存入元素

原创 2018年04月17日 11:11:24

步骤:
1、创建一个Student类,设置类中的属性,包括私有的id和name。

2、ps:调用HashSet集合的add方法时,会调用存入对象的hashCode()方法获得对象的哈希值,根据此哈希值计算出一个存储位置,如果该位置没有元素,直接将元素存入,若有元素存在,会调用equals()方法让当前元素和该位置上的元素进行比较,若返回结果为false,就将该元素存入集合,返回结果为true,说明有重复元素,就将该元素舍弃。

重点:所以HashSet需要重写hashCode()方法和equals()方法!!!!!!!!!!!!!!!!

3、重写toString()方法。

4、进行equals()方法时,
(1)判断是否为同一个对象,若为同一个对象,则返回true。
(2)判断是否为Student对象,若不是,则强制转换为Student对象。

(3)判断id值是否相同,若相同,则返回。


5、创建HashSet对象和 Student对象,在主类中进行添加。
6、向集合中添加对象。

package practice1;
import java.util.*;
class Student
{
	private String id;
	private String name;
	public Student(String id,String name)
	{
		this.id=id;
		this.name=name;
	}
	//重写toString方法
	public String toString()
	{
		return id+":"+name;
	}
	//重写hashCode方法
	public int hashCode()
	{
		return id.hashCode();
	}
	//重写equals方法
	public boolean equals(Object obj)
	{
		if(this==obj)
		{
			return true;
		}
		if(!(obj instanceof Student))
		{
			return false;
		}
		Student stu=(Student )obj;
		boolean b=this.id.equals(stu.obj);
		return b;
		
		
	}
}
public class Example07 {

	public static void main(String[] args) {
		HashSet hs=new HashSet();
		Student stu1=new Student("1","Jack");
		Student stu2=new Student("2","Sam");
		hs.add(stu1);
		hs.add(stu2);
		System.out.print(hs);
		
		// TODO Auto-generated method stub

	}

}

Java 往hashSet集合中存入自定义对象

往hashSet集合中存入自定对象
  • hoho_12
  • hoho_12
  • 2016-04-15 17:13:03
  • 2352

将自定义对象存入到HashSet集合中并去除重复元素

package tan; import java.util.HashSet; import java.util.Iterator; class Student{ private int age; ...
  • u010834071
  • u010834071
  • 2014-07-19 20:51:32
  • 1811

Set集合中元素的保存问题(hashSet和treeSet中不能存放相同元素)

1.对于hashSet集合,一般需要复写类中的ha
  • u014080514
  • u014080514
  • 2014-11-15 12:28:01
  • 1409

java学习笔记之 HashSet 保证元素唯一性的方法

问题: 如下,在哈希表中添加了两个相同自定义学生类,可以看到输出为两个名为LEE的学生对象。 import java.util.HashSet; import java.util.Iterator...
  • a542214712
  • a542214712
  • 2012-05-06 22:27:27
  • 5483

javaday17-集合框架(HashSet存储字符串并遍历)

注意:从今天开始我们笔记里的代码码中,所有的实体类都不在写空参有参构造,还有set和get方法,将代码拷贝到Eclipse后,需要自己添加17.01_集合框架(HashSet存储字符串并遍历) A:S...
  • kairui007
  • kairui007
  • 2015-12-09 17:06:01
  • 2057

JAVA基础之——HashSet中是如何判断元素是否重复的

原文:http://blog.csdn.net/ning109314/article/details/17354839 HashSet不能添加重复的元素,当调用add(Object)方法时候...
  • xuxiaoxie
  • xuxiaoxie
  • 2016-05-09 19:46:37
  • 4124

Java_基础—HashSet存储自定义对象保证元素唯一性

* A:案例演示 * 存储自定义对象,并保证元素唯一性。 * B:代码优化 * 为了减少比较,优化hashCode()代码写法。 * 最终版就是自动生成即可。...
  • SoarFly0807
  • SoarFly0807
  • 2017-07-15 09:38:52
  • 321

HashSet中是如何判断元素是否重复的

HashSet不能添加重复的元素,当调用add(Object)方法时候, 首先会调用Object的hashCode方法判hashCode是否已经存在,如不存在则直接插入元素; 如果已存在则调用Ob...
  • ning109314
  • ning109314
  • 2013-12-16 16:13:34
  • 17346

向HashSet插入自定义对象判断是否重复

一.HashSet概述HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 二.存储方式与...
  • Kindle_code
  • Kindle_code
  • 2016-07-11 15:43:11
  • 2087

Java Set集合使用方法介绍(1)——在集合中插入字符串

Java import java.util.HashSet; import java.util.Iterator; import java.util.Set;public class WorfDemo...
  • Rainary
  • Rainary
  • 2017-05-19 22:03:24
  • 1185
收藏助手
不良信息举报
您举报文章:向Set接口中的HashSet集合存入元素
举报原因:
原因补充:

(最多只允许输入30个字)