赞助连接

赞助连接

阅 读 文 章

两个数组比较是否相等

[来源:网上转载 (http://bbs.chinaunix.net) | 作者:网友(网络转载) | 时间:2008-06-14 | 浏览: 人次 ]

class ArraysEquals
{
        public static void main(String[] args)
        {
                int a1[]=new int[]{1,2};
                int a2[]=new int[]{1,2};
                if(a2.equals(a1))
                        System.out.println("a1 equal a2");
                else
                        System.out.println("a1 not equal a2");
        }
}


运行结果:a1 not equal a2
什么原因,正确的怎么写


a2.equals(a1)调用的equals继承的是object的equals方法,
Object 类的 equals 方法实现对象上差别可能 *** 最大的相等关系;即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。
例如(new int[]{1,2}.equals(new int[]{1,2}))为false,因为引用的是两个对象,虽然值相同。
当然这种相等对于数组对象太严格了,要么你覆盖父类的equals方法,要么你比对所有的数组元素,若都相等,则判断为相等


可以使用Arrays类中的静态方法实现比较!看看API吧。




QUOTE:原帖由 seagal890 于 2008-6-13 17:56 发表
可以使用Arrays类中的静态方法实现比较!看看API吧。
import java . util . Arrays ;

class ArraysEquals
{
         public static void main ( String [ ] args )
         {
                 int a1 [ ] = new int [ ] { 1 , 2 } ;
                 int a2 [ ] = new int [ ] { 1 , 2 } ;
                 if ( Arrays . equals ( a1 , a2 ) )
                         System . out . println ( "a1 equal a2" ) ;
                 else
                         System . out . println ( "a1 not equal a2" ) ;
         }
}



TAG标签 : 是否 比较 两个 a1 int a2 new 方法 equal equals Arrays

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表
网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.newhtm.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.