判断两个对象是否一样

本文介绍了一个简单的Java程序,用于比较两个Person对象是否相等。通过比较姓名和年龄属性来判断两个对象是否相同,并提供了一个示例来展示如何使用这个比较方法。
/*判断两个对象是否一样*/
class Person9{
private String name;
private int age;
public Person9(String name,int age){
this.name = name;
this.age = age;
}
public boolean compare(Person9 per){
Person9 per1 = this;
Person9 per2 = per;
if(per1.name.equals(per2.name)&&per1.age==per2.age){
return true;
}else{
return false;
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class PersonDemo9 {


public static void main(String[] args) {
// TODO Auto-generated method stub
Person9 per1 = new Person9("张三",30);
Person9 per2 = new Person9("张三",31);
if(per1.compare(per2)){
System.out.println("两个对象相同");
}else{
System.out.println("两个对象不同");
}
}


}
JavaScript中,判断两个对象是否完全相同(即它们包含相同的属性名和属性值,支持嵌套对象),可以通过自定义函数进行深度比较。 以下是一个基本的实现示例: ```javascript function isEqual(obj1, obj2) { // 如果两个对象引用相同,则它们相等 if (obj1 === obj2) return true; // 如果其中一个对象是null或undefined,且另一个不是,则它们不相等 if (obj1 == null || obj2 == null) return false; // 获取两个对象的键数组 const keys1 = Object.keys(obj1); const keys2 = Object.keys(obj2); // 如果键的数量不同,则它们不相等 if (keys1.length !== keys2.length) return false; // 遍历对象的键,并比较对应的值 for (let key of keys1) { // 如果obj2中不存在这个键,则它们不相等 if (!keys2.includes(key)) return false; const val1 = obj1[key]; const val2 = obj2[key]; // 递归比较值(支持嵌套对象) if (!isEqual(val1, val2)) return false; } // 如果所有检查都通过,则它们相等 return true; } // 测试 const obj1 = {a: 1, b: {c: 2}}; const obj2 = {a: 1, b: {c: 2}}; const obj3 = {a: 1, b: {c: 3}}; console.log(isEqual(obj1, obj2)); // true console.log(isEqual(obj1, obj3)); // false ``` 该方法的核心逻辑是:首先检查两个对象是否引用相同,若相同则直接判定相等;接着检查是否存在 `null` 或 `undefined` 的情况;然后比较两个对象的键的数量;最后遍历对象的键,递归比较对应的值,确保每个属性及其嵌套属性都相等。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值