黑马程序员技术交流社区

标题: Equals 源代码 分析 [打印本页]

作者: 叶顺达    时间: 2015-7-15 23:24
标题: Equals 源代码 分析
源代码
    public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }                    //以上代码用于判断两个对象的地址值,如果相等则直接返回对象相等
   
    if (anObject instanceof String)
     {                    //判断对象是否为String类型如果是则进行运算,如果不是直接返回false
        String anotherString = (String)anObject;//将anObject转换成String类型
                        //先普及知识,String类型储存在底层中是直接转换为一个字符数组
                            如 "hello"底层的储存状况
                            char value[] ={'h','e','l','l','o'};
        int n = count;            //定义字符串的索引为cont
        if (n == anotherString.count) {    //判断两对象的数组长度是否相等,不相等则直接返回false(判断两对象的字数)
        char v1[] = value;                    //将两对象转换为char类型数组
        char v2[] = anotherString.value;
        int i = offset;                    //定义索引变量
        int j = anotherString.offset;
        while (n-- != 0) {                    //对数组进行遍历
            if (v1[i++] != v2[j++])            //如果对应元素有一个不相等则返回folse,若全部相等则true
            return false;
        }
        return true;
        }
    }
    return false;
    }

作者: pathnet    时间: 2015-7-15 23:40
都还没学过,感觉好高大上
作者: 叶顺达    时间: 2015-7-15 23:57
pathnet 发表于 2015-7-15 23:40
都还没学过,感觉好高大上

还行  在Object里面的源代码分析
作者: 游呤人    时间: 2015-7-16 00:14
这个不错注释的很清楚,我以后也要这样
作者: 叶顺达    时间: 2015-7-16 00:17
游呤人 发表于 2015-7-16 00:14
这个不错注释的很清楚,我以后也要这样

这个只是用于学习的,正常情况不会写这么细
作者: 鲁枝权双元    时间: 2015-7-16 00:33
多看看原码还是有好处的
作者: 叶顺达    时间: 2015-7-16 00:35
鲁枝权双元 发表于 2015-7-16 00:33
多看看原码还是有好处的

是的 代码思路
作者: hmilys9265    时间: 2015-7-17 00:14
ArrayList newAl = new ArrayList();

                Iterator it = al.iterator();

                while (it.hasNext()) {
                        Object obj = it.next();

                        if (!newAl.contains(obj))
                                newAl.add(obj);

                }

                return newAl;
作者: 叶顺达    时间: 2015-7-17 00:16
hmilys9265 发表于 2015-7-17 00:14
ArrayList newAl = new ArrayList();

                Iterator it = al.iterator();

啥子情况 呢2
作者: vinoMVP    时间: 2015-7-17 00:18
没学到,看不懂。。。
作者: 叶顺达    时间: 2015-7-17 00:20
vinoMVP 发表于 2015-7-17 00:18
没学到,看不懂。。。

API 那一章
作者: 晚风吹舟行    时间: 2015-7-17 00:22
楼主六的一比!!!!
作者: vinoMVP    时间: 2015-7-17 00:23
叶顺达 发表于 2015-7-17 00:20
API 那一章

刚上基础班,感觉亚历山大啊
作者: 叶顺达    时间: 2015-7-17 00:24
晚风吹舟行 发表于 2015-7-17 00:22
楼主六的一比!!!!

:funk::call:
:funk::call:
:funk::call:
:funk::call:
:funk::call:
:funk::call:




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2