美文网首页
比较自定义对象的时候要重写Equals方法

比较自定义对象的时候要重写Equals方法

作者: 蓝色Hippie | 来源:发表于2018-01-18 14:59 被阅读17次

using System;

using System.Collections.Generic;

using System.Text;

namespace Equal

{

    using System;

    class Test

    {

        public static void Main()

        {

            Person p1 = new Person("A", 1);

            Person p2 = new Person("A", 1);         

            if (p1.Equals (p2))

            {

                Console.WriteLine("true");

            }

            else

            {

                Console.WriteLine("false");

            }

        }

    }

    class Person

    {

        private string name;

        private int age;

        public Person()

        {

            this.name = "";

            this.age = 0;

        }

        public Person(string name, int age)

        {

            this.name = name;

            this.age = age;

        }

        //重写Equals方法

        public override bool Equals(object obj)

        {

            if (obj == null)

            {

                return false;

            }

            if ((obj.GetType().Equals(this.GetType())) == false)

            {

                return false;

            }

            Person temp = null;

            temp = (Person)obj;

            return this.name.Equals(temp.name) && this.age.Equals(temp.age);

        }

        //重写GetHashCode方法(重写Equals方法必须重写GetHashCode方法,否则发生警告

        public override int GetHashCode()

        {

            return this.name.GetHashCode() + this.age.GetHashCode();

        }

    }

}

相关文章

  • 比较自定义对象的时候要重写Equals方法

    using System; using System.Collections.Generic; using Sys...

  • 04.重写hashCode方法和equals方法实现HashSe

    重写hashCode方法和equals方法实现HashSet存储自定义对象去重

  • 【Java】equals和hashCode

    为什么要重写equals方法1)Object类中equals方法比较的是两个对象的引用地址,只有对象的引用地址指向...

  • hashcode

    JAVA中重写equals()方法的同时要重写hashcode()方法 object对象中的 public boo...

  • OnJava8_比较运算重写

    List的contains方法,当涉及自定义的类对象时,需要重写equals方法; 数据存储自定义类对象时并调用s...

  • java基础随笔

    1.equals 方法本质就是 ==。引用对象不重写equals方法就是比较地址值 2.String 不是基础类型...

  • ==和equals

    ==和equals的区别: ==和equals方法都是用来比较两个变量/对象是否相等。 如果没有重写equals方...

  • 1.1java知识点回顾

    重写tostring方法 双等号值相等 重写equals方法 双等 equals 同一个对象

  • String比较

    1.字符串比较 equals 原理是String重写了equals 方法,遍历字符数组。而 == 比较的是两个对象...

  • 造火箭基础篇-Java基础

    1.为什么重写equals方法必须重写hashcode方法?hash的时候需要保证equals的对象映射到同一个位...

网友评论

      本文标题:比较自定义对象的时候要重写Equals方法

      本文链接:https://www.haomeiwen.com/subject/tilwoxtx.html