equals 订阅
《同等族群》是由德雷克·多雷穆斯执导,尼古拉斯·霍尔特、克里斯汀·斯图尔特联合主演的科幻爱情片。该片于2016年7月1日在美国上映。该片讲述在一个完美无缺却无感情的世界里,人类情感被去除,两个因患病而有了情感的人相遇,产生情愫,最后决定携手逃亡的故事 [1]  。 展开全文
《同等族群》是由德雷克·多雷穆斯执导,尼古拉斯·霍尔特、克里斯汀·斯图尔特联合主演的科幻爱情片。该片于2016年7月1日在美国上映。该片讲述在一个完美无缺却无感情的世界里,人类情感被去除,两个因患病而有了情感的人相遇,产生情愫,最后决定携手逃亡的故事 [1]  。
信息
制片地区
美国
主    演
尼古拉斯·霍尔特,克里斯汀·斯图尔特,盖·皮尔斯
上映时间
2016年7月1日(美国)
色    彩
彩色
导    演
德雷克·多雷穆斯
其它译名
完人世界(台湾)、对等物、完人世界
类    型
剧情、爱情、科幻
拍摄日期
2014年8月4日
中文名
同等族群
片    长
101分钟
imdb编码
tt3289728
外文名
Equals
编    剧
内森·帕克
对白语言
英语
制片人
迈克尔·谢弗
拍摄地点
日本、新加坡
c语言简介
收起全文
精华内容
参与话题
问答
  • equals和hashcode总结

    万次阅读 多人点赞 2019-07-31 18:37:06
    equals和hashcode总结: 1.equals方法没有重写的话,用于判断对象的内存地址引用是否是用一个地址。重写之后一般用来比较对象的内容是否相等(比如student对象,里面有姓名和年龄,我们重写 equals方法来判断只要...

    equals和hashcode总结:

    1.equals方法没有重写的话,用于判断对象的内存地址引用是否是用一个地址。重写之后一般用来比较对象的内容是否相等(比如student对象,里面有姓名和年龄,我们重写

    equals方法来判断只要姓名和年龄相同就认为是用一个学生)。

    2.hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值,当然你也可以重写它,hashcode方法只有在集合中用到。

    3.对象放入集合中时,先判断hashcode是否相等,再判断equals是否相等,都相等就算是同一个对象,list则可以放入,set因为不允许重复所以不会放入。

    4.例如:

    public class Student {

            private int age;

            private String name;

            

            public Student(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;

            }

            //重写equals方法,判断姓名和年龄相同就是相等的

            public boolean equals(Object o){

                if(o == null){

                    return false;

                }

                if(this.getClass() != o.getClass()){

                 return false;   

                }

                Student student = (Student)o;

                if(name == null){

                    return false;

                }

                if(age==student.getAge()&&name.equals(student.getName())){

                    return true;

                }

                return false;

            }

            

        public static void main(String[] args) {

            Student studentOne = new Student(1,"yjc");

            Student studentTwo = new Student(1,new String("yjc"));

            System.out.println(studentOne.equals(studentTwo));

            System.out.println("1: "+studentOne.getName().hashCode());

            System.out.println("2: "+studentTwo.getName().hashCode());

        }

        //输出结果:true

                    1: 119666

                    2: 119666

     

    }

    以上可以看出,两个String都叫"yjc",无论是直接"yjc"还是new String("yjc"),他们的hashcode都相同。所以在重写hashcode方法时可以运用这一点。

    比如你希望如果姓名和年龄相同,不仅equals相同,他们的hashcode也要相同,可以这样重写hashcode:

    public int hashcode(){

    final int prime = 31;

    int result = 1;

    result = prime*result + age;

    result = prime*result + (name == null? 0 : name.hashcode());

    return result;//直接写age+(name == null? 0 : name.hashcode())也行就是感觉太简单了0.0

    }

    这样一来两个姓名和年龄相同的Student对象就是同一个对象了,放入set中会被认为是同一个,无论放几个这样的对象,set.size()都是等于1。

    同样,HashMap因为key也是唯一的,HashMap对象是根据其Key的hashCode来定位存储位置,并使用equals(key)获取对应的Value,所以在put时判断key是否重复用到了hashcode和equals,若重复了则会覆盖。

    展开全文
  • equals

    千次阅读 多人点赞 2019-06-03 23:44:20
    equals 和 ==的区别 ==比较对象的是地址是否相同 equals如果子类中没有重写,默认调用Object类中的equals方法,比较的是地址,但是可以重写,自定义比较规则,按照内容比较对象是否相同 String类中的equals 是比较字符串...

    equals 和 ==的区别

    == 比较对象的是地址是否相同

    equals如果子类中没有重写,默认调用Object类中的equals方法,比较的是地址,但是可以重写,自定义比较规则,按照内容比较对象是否相同

    String类中的equals 是比较字符串是否相同( 被重写过的equals方法 )

    public class TestEquals {
    	public static void main(String[] args) {
    		String s1 = new String("aaa");
    		String s2 = new String("aaa");
    		System.out.println(s1==s2);//这里的==比较地址是否相等
    		System.out.println(s1.equals(s2));//比较字符串是否相等的方法		
    	}
    }
    
    展开全文
  • Equals

    2015-04-26 15:14:34
    equals两个对象比较不能用==

    两个对象比较
    equals两个对象比较不能用==
    覆盖后再比较内容属性

    展开全文
  • 为什么重写equals一定要重写hashcode?

    万次阅读 多人点赞 2018-05-24 23:55:10
    Object类默认的equals比较规则就是比较两个对象的内存地址。而hashcode是本地方法,java的内存是安全的,因此无法根据散列码得到对象的内存地址,但实际上,hashcode是根据对象的内存地址经哈希算法得来的

    引言

    这篇文章已经是我很久之前写的,其中的内容表述得不太清楚,或多或少难以让人信服,于是我又写了一篇,链接如下:

    CSDN链接:重新认识equals和hashCode方法  微信公众号链接:深入理解equals和hashCode  希望点进去的小伙伴关注一下我的公众号哟,文末有二维码,谢谢!

     

    正文

     

    大家都知道,equals和hashcode是java.lang.Object类的两个重要的方法,在实际应用中常常需要重写这两个方法,但至于为什么重写这两个方法很多人都搞不明白,以下是我的一些个人理解。

    这是Object类关于这两个方法的源码,可以看出,Object类默认的equals比较规则就是比较两个对象的内存地址。而hashcode是本地方法,java的内存是安全的,因此无法根据散列码得到对象的内存地址,但实际上,hashcode是根据对象的内存地址经哈希算法得来的。

    上图展示了Student类的重写后的equals方法和hashcode方法,建议大家用eclipse自动生成,尽量不要自己敲因为很有可能会出错。

    现在有两个Student对象:

    •     Student s1=new Student("小明",18);
    •     Student s2=new Student("小明",18);

    此时s1.equals(s2)一定返回true

    • 假如只重写equals而不重写hashcode,那么Student类的hashcode方法就是Object默认的hashcode方法,由于默认的hashcode方法是根据对象的内存地址经哈希算法得来的,显然此时s1!=s2,故两者的hashcode不一定相等。
    • 然而重写了equals,且s1.equals(s2)返回true,根据hashcode的规则,两个对象相等其哈希值一定相等,所以矛盾就产生了,因此重写equals一定要重写hashcode,而且从Student类重写后的hashcode方法中可以看出,重写后返回的新的哈希值与Student的两个属性有关。

    以下是关于hashcode的一些规定:

    • 两个对象相等,hashcode一定相等
    • 两个对象不等,hashcode不一定不等
    • hashcode相等,两个对象不一定相等
    • hashcode不等,两个对象一定不等

     

    我的二维码

    觉得写得不错的小伙伴,扫码关注一下我的公众号吧,谢谢呀!

     

     

    展开全文
  • equals方法

    万次阅读 2018-06-28 19:50:31
    因为Java中所有类都继承自Object类,所以Java中的所有对象都有equals方法。 /** * Object类默认的equals()方法 */ public boolean equals(Object obj) { return (this == obj); } 重写equals方法 Object的...
  • a.equals(b) 当 a 是 null 的时候,抛出 NullPointerException 异常 a.equals(b) 当 a 不是 null,b 是 null 的时候,返回 false Objects.equals(a,b) 比较时,a 或者 b 即使是 null 时,也不抛异常 null.equals(&...
  • 实现equals方法诀窍

    千次阅读 2016-07-16 16:41:25
    equals
  • 重写equals

    2016-08-29 13:14:29
    重写equals
  • Java equals

    2017-07-15 17:00:54
    Java中用equals方法来判断两个对象是不是相等,equals方法是Object类就拥有的方法,因而属于所有对象通用的方法,使用方式很简单:a.equals(b) ,返回true或false。下面进入正题。什么时候才应该覆盖equals方法 ...
  • equals原理

    千次阅读 2019-06-20 17:47:53
    在java中,"=="和"equals()"区别是什么? 恐怕大多数人都会回答,第一个是用来比较地址,第二个是用来比较内容的吧。这个回答并不准确 例如 输出的结果为false,而用String输出的却是true 这是为什么呢? 查看object...
  • == 和 equals 的区别

    万次阅读 多人点赞 2019-04-04 18:23:41
    == 和 equals 的区别是什么? 使用 == 比较 Java中的8种基本数据类型(byte,short,char,int,long,float,double,boolean)比较他们之间的值是否相等。 引用数据类型,比较的是他们在堆内存地址是否相等。每新new一...
  • 重写hashcode和equals方法

    万次阅读 多人点赞 2019-05-07 21:55:43
    我们都知道,要比较两个对象是否相等时需要调用对象的equals()方法,即判断对象引用所指向的对象地址是否相等,对象地址相等时,那么与对象相关的对象句柄、对象头、对象实例数据、对象类型数据等也是完全一致的,...
  • equals大部分情况下用来比较两个字符串是否相同.例如下面的代码 public static void main(String[] args) { Student s1 = new Student("二狗",14); Student s2 = new Student("三狗",15); ...
  • 枚举 equals 枚举类equals()方法 (Enum Class equals() method) equals() method is available in java.lang package. equals()方法在java.lang包中可用。 equals() method is used to check equality or inequality...
  • 重写equals方法

    2019-12-02 17:23:40
    重写equals方法 相信在每个人都有过重写过java的equals的方法的经历。这篇博文就从以下几个方面说明重写equals方法的原由,与君共进步。 一 为什么要重写equals方法 首先我们了解equals方法的作用是什么? java的...
  • object类中的equals与自定义equal方法详解 this怎么了解?this == obj表示什么? /*Object 类中的 equals() 方法*/ Object 类中的 equals() 方法 public boolean equals(Object obj) { return (this == obj);...
  • Java常用API——equals方法 & equals方法的重写
  • 为什么重写equals必须重写hashCode 1. Object中equals、hashCode public native int hashCode(); public boolean equals(Object obj) { return (this == obj); } 首先看一下equals方法,Object中默认比较两个对象...
  • equals 和 ==, equals 和 hashcode
  • hashCode与equals的区别与联系

    万次阅读 多人点赞 2011-10-20 03:01:19
    一、equals方法的作用 1、默认情况(没有覆盖equals方法)下equals方法都是调用Object类的equals方法,而Object的equals方法主要用于判断对象的内存地址引用是不是同一个地址(是不是同一个对象)。2 、要是类中...
  • java的equals方法 日期类equals()方法 (Date Class equals() method) equals() method is available in java.util package. equals()方法在java.util包中可用。 equals() method is used to check whether this date...

空空如也

1 2 3 4 5 ... 20
收藏数 72,701
精华内容 29,080
关键字:

equals