面试题分析:6 关于HashSet的add方法的解析
来源:互联网 发布:邮票交易源码 编辑:程序博客网 时间:2024/06/05 04:14
package com.luzhiming.setDemo; import java.util.ArrayList;import java.util.HashSet;/** * @author strungle E-mail: 645707787@QQ.com * @version 创建时间:2013-6-12 下午8:29:14 * */public class HashSetDemo {public static void main(String[] args) {HashSet<Person> myset = new HashSet<Person>();//打印结果:trueSystem.out.println(myset.add(new Person(1,"张三")));//打印结果:false , 表示这个对象没有添加到集合中/** * add方法: * 当我们向HashSet中添加对象的时候: * 首先调用 hashCode方法,如果hashcode不相同则将对象放入,如果相同 * 然后调用equasl,如果equasl返回false,则将对象放入 * 如果equasl方法返回true,表示集合中确实存在了该对象,此时,放弃放入该对象,并且返回false * */System.out.println(myset.add(new Person(1,"张三")));System.out.println(myset.size());}}class Person{private int age;private String name;public Person(int age, String name) {this.age = age;this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + age;result = prime * result + ((name == null) ? 0 : name.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Person other = (Person) obj;if (age != other.age)return false;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;}}
所以一般情况下,我们 hashCode()和equasl()方法是同时重写的。
- 面试题分析:6 关于HashSet的add方法的解析
- HashSet集合的add()方法的源码
- HashSet的add方法的问题
- HashSet的add(E e)方法剖析
- 关于XML的dom解析和sax解析方法的区别(面试题)
- 关于一道java面试题的分析
- 对HashSet的add()方法的一点探究
- 集合框架-HashSet集合的add()方法的源码
- 关于指针常用的面试题的解析
- 解析关于实例化顺序的C#面试题
- 解析关于实例化顺序的C#面试题
- 关于js原型的经典面试题解析
- 一道关于JavaScript解析器错误的面试题
- 一道面试题的解析
- 解析面试题的背后
- 解析面试题的背后
- 关于Android的面试题(笔试题)---选择(个人分析)
- cloudsolrclient的add方法分析
- DDR SDRAM config in s3c6410
- 利用windbg分析dump文件
- StringBuffer与StringBuilder的区别
- java 写的 servlet 的验证码
- java的IO(二)
- 面试题分析:6 关于HashSet的add方法的解析
- 关于ngx_trylock_accept_mutex的一些解释
- 记我装系统
- UVa 10192 - Vacation
- cocos2d-x for android(1)-环境的配置
- perf event
- 也说字符串解析的一个方法
- Java的封面[转载]
- μC/OS Ⅱ学习笔记--任务的调度