java – 等于字符串和列表中的方法用法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 等于字符串和列表中的方法用法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1676字,纯文字阅读大概需要3分钟。
内容图文
![java – 等于字符串和列表中的方法用法](/upload/InfoBanner/zyjiaocheng/747/09f2668b035a424ba65076e0df8d945b.jpg)
在oracle java文档中,
list中的equals()表示如果两个列表包含相同的元素,则它们被定义为相等.
但是从对象类equals()只有在它们的哈希码相等时才返回true.
它表示来自列表覆盖的equals()等于来自对象类的方法.对于字符串中的equals()也是一样的.只要它们具有相同的字符,它们就会返回true.
每当我将一个类型声明为String,或者使用像arraylist这样的列表类时
等于()自动重写righT?
解决方法:
equals() are overridden automatically righT?
答:是的绝对正确,如果您要求覆盖.equals()方法在运行时自动调用
**对象类是java中每个类的父类,它由.equals()方法组成,它比较对象引用
但是String类,Wrapper类(Integer,Long等…)和Collections Classes(ArrayList,hashSet等…)被重写.equals()方法来比较对象中的内容而不是对象引用
避免混淆是一个明显的例子
public class Main2 {
public static void main(String[] args) {
List<String> l1 = new ArrayList<>();
l1.add(new String("hello"));
List<String> l2 = new ArrayList<>();
l2.add(new String("hello"));
System.out.println(l1.equals(l2)); //true
List<Test> t1 = new ArrayList<>();
t1.add(new Test());
List<Test> t2 = new ArrayList<>();
t2.add(new Test());
System.out.println(t1.equals(t2)); //false
}
}
class Test{
}
在上面的例子中比较List< String>将返回true,因为重写了String中的.euqals()方法以比较内容
但是在比较Lits< Test>即使两个对象都是空的,也会返回false,因为默认情况下它不会覆盖Test类中的.equals()方法,它会调用Object类.equals()方法,它将对象的引用比较为==
Google Question对象类equals方法比较hashcode?
回答
The java.lang.Object class requires that any two objects that compare equal using the equals() method must produce the same integer result when the hashCode() method is invoked on the objects [API 2014]. The equals() method is used to determine logical equivalence between object instances.Feb 12, 2018
内容总结
以上是互联网集市为您收集整理的java – 等于字符串和列表中的方法用法全部内容,希望文章能够帮你解决java – 等于字符串和列表中的方法用法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。