zoukankan      html  css  js  c++  java
  • == 和equals

    Java 程序中测试两个变量是否相等有两种方式,一种是利用==运算符,另一种是利用equals方法。

    当使用==来判断两个变量是否相等时 :

                                                                   如果2个变量是基本类型的变量,且都是数值型(不一定要求数据类型严格相同),则只要两个变量的值相等,使用==判断就将返回true。

                                                                   但对于两个引用类型的变量,必须它们指向同一个对象时,==判断才会返回true,



    Set 集合就是用equals方法判断元素是否重复的. (还需比较hashcode)


    判断两个对象是否相等,需重写equals方法.

    class Person{
    	
    	private String name;
    	private String idStr;
    	
    	public Person(){
    		
    	}
    	
    	public Person(String name,String idStr){
    		this.name=name;
    		this.idStr=idStr;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public String getIdStr() {
    		return idStr;
    	}
    
    	public void setIdStr(String idStr) {
    		this.idStr = idStr;
    	}
    	
    	//重写equals方法,提供自定义的相等标准
    	public boolean equals(Object obj){
    		
    		//只有当obj是person对象
    		if(obj!=null&&obj instanceof Person){
    			Person personObj=(Person) obj;
    			//并且当前对象的idStr与obj对象的idStr相等才可判断两个对象相等
    			if(this.getIdStr().equals(personObj.getIdStr())){
    				 return true;
    			}
    		}
    		return false;
    	}
    }
    
    
    
    public class OverrideEqualsRight {
    	public static void main(String[] args) {
    		
    		Person p1=new Person("tom1","1234");
    		Person p2=new Person("tom2","1234");
    		Person p3=new Person("tom3","9012");
    		
    		//p1和p2的值相等,所以输出true
    		System.out.println("p1和p2是否相等?: "+p1.equals(p2));
    		//p2和p3的idStr不相等,所以输出false
    		System.out.println("p2和p3是否相等?: "+p2.equals(p3));
    
    
    	}
    
    }
    


  • 相关阅读:
    Js事件触发列表与解说(转)
    HTTP 头部解释,HTTP 头部详细分析,最全HTTP头部信息
    【转】php 数组 编码转换
    Cookie 的规范介绍
    PHP底层的运行机制与原理
    PHP为什么会被认为是草根语言?
    asp.net中读取带有加号(+)的Cookie,会自动把加号替换为空格
    git克隆某个分支到本地指定的目录中
    yq(json,yaml)格式转换工具安装和使用
    k8s中configmap的作用及使用方式
  • 原文地址:https://www.cnblogs.com/wuyida/p/6300343.html
Copyright © 2011-2022 走看看