「object比较java」objective

博主:adminadmin 2023-01-17 04:21:07 392

本篇文章给大家谈谈object比较java,以及objective对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中entity和object的区别

object泛指所有的对象,是所有对象类型的父类,不可以被重写继承。

entity是一个实体对象,如人、车等都可以看出是一个实体。

entity是object的一种,也就是包含关系。

java Object里的equals比较的是对象的哈希值还是物理内存? "==" 比较的又什么?

== 和 Equals 的区别

1. == 是一个运算符。

2.Equals则是string对象的方法,可以.(点)出来。

我们比较无非就是这两种 1、基本数据类型比较 2、引用对象比较

1、基本数据类型比较

==和Equals都比较两个值是否相等。相等为true 否则为false;

2、引用对象比较

==和Equals都是比较栈内存中的地址是否相等 。相等为true 否则为false;

需注意几点:

1、string是一个特殊的引用类型。对于两个字符串的比较,不管是 == 和 Equals 这两者比较的都是字符串是否相同;

2、当你创建两个string对象时,内存中的地址是不相同的,你可以赋相同的值。

所以字符串的内容相同。引用地址不一定相同,(相同内容的对象地址不一定相同),但反过来却是肯定的;

3、基本数据类型比较(string 除外) == 和 Equals 两者都是比较值;

java中的怎么比较两个object值的大小

我给你举个例子吧:创建一个熊猫类,实例化两个熊猫对象,如果两个对象的身高和年龄相同就认为这两个对象的equals方法返回真,否则返回假

Panda类:

public class Panda {

double height;

int age;

@Override

public boolean equals(Object obj) {

if(this==obj){

return true;

}

if(obj instanceof Panda){

Panda panda=(Panda)obj;

if (this.height==panda.heightthis.age==panda.age){

return true;}

else{

return false;

}

}

return false;

}

}

Test类:

public class Test {

public static void main(String[] args) {

Panda panda=new Panda();

panda.height=1.60;

panda.age=4;

Panda panda1=new Panda();

panda1.height=1.60;

panda1.age=4;

System.out.println(panda.equals(panda1));

}

}

你可以测试一下。

如何在java里面对Object的类型值进行一个大小的比较

作者:Tao Li

链接:

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

java中类的比较一般有两种方法,一种就是类本身实现ComparableT这个接口,比如通过对用户的姓名进行比较排序:

package com.ailot.compare;

public class User implements ComparableUser {

private String name;

private int age;

private String sex;

public User(String name,int age,String sex){

this.name = name;

this.age = age;

this.sex = sex;

}

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 String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

@Override

public String toString() {

return "User [name=" + name + ", age=" + age + ", sex=" + sex + "]";

}

@Override

public int compareTo(User u) {

// TODO Auto-generated method stub

int c = this.name.compareTo(u.name);

if(c==0){

return 0;

}else if(c 0){

return 1;

}else{

return -1;

}

}

}

Test.java

package com.ailot.compare;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import java.util.Random;

public class Test {

public static void main(String[] args) {

ListUser userList = new ArrayListUser();

for(int i=0;i10;i++){

int s = new Random().nextInt(20);

User u = new User(s+"张三",i,"男");

userList.add(u);

}

Collections.sort(userList);

for(User user : userList){

System.out.println(user.toString());

}

}

}

排序的话直接用 Collections.sort( userList ) ;就可以了。

作者:Tao Li

链接:

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

另一种就是类没有实现ComparableT这个接口,这就需要自己新建一个比较的类,通过实现ComparatorT来对类进行比较,还是对User类的姓名进行比较排序:

User.java

package com.ailot.compare;

public class User {

private String name;

private int age;

private String sex;

public User(String name,int age,String sex){

this.name = name;

this.age = age;

this.sex = sex;

}

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 String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

@Override

public String toString() {

return "User [name=" + name + ", age=" + age + ", sex=" + sex + "]";

}

}

UserCompare.java

package com.ailot.compare;

import java.util.Comparator;

public class UserCompare implements ComparatorUser {

@Override

public int compare(User u1, User u2) {

// TODO Auto-generated method stub

int c = u1.getName().compareTo(u2.getName());

if(c == 0){

return 0;

}else if(c 0){

return -1;

}else{

return 1;

}

}

}

Test.java

package com.ailot.compare;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import java.util.Random;

public class Test {

public static void main(String[] args) {

ListUser userList = new ArrayListUser();

for(int i=0;i10;i++){

int s = new Random().nextInt(20);

User u = new User(s+"张三",i,"男");

userList.add(u);

}

Collections.sort(userList,new UserCompare());

for(User user : userList){

System.out.println(user.toString());

}

}

}

排序的话直接用 Collections.sort(userList,new UserCompare());就可以了。

JAVA 中 Objects 与Object 有什么区别

Object是所有类的基类,这个你可以查询jdk文档了解,所有类都继承自Object。Object ...objects这种参数定义是在不确定方法参数的情况下的一种多态表现形式。即这个方法可以传递多个参数,这个参数的个数是不确定的。这样你在方法体中需要相应的做些处理。因为Object是基类,所以使用Object ...objects这样的参数形式,允许一切继承自Object的对象作为参数。这种方法在实际中应该还是比较少用的。Object[] obj这样的形式,就是一个Object数组构成的参数形式。说明这个方法的参数是固定的,是一个Object数组,至于这个数组中存储的元素,可以是继承自Object的所有类的对象

JAVA中,为什么object对象中的equals方法比较的是同一,而String对象比较的是相等?

因为在java中,Object类是所有类的始祖,所有类都直接或者间接继承了它。Object类中equals方法比较的是两个对象是否具有相同的引用,如果两个对象的引用都一样(即指向同一块内存),那它们一定是相等的。

至于为什么要这样设计,因为Object没办法判断是什么来继承他,不能具体的去实现这个逻辑,因此交给它的子类自己根据自己的特征去重写这个方法。举个列子,比如定义了一个人类Person,有子类学生Student和员工Employee类,这时候Person类里面可以有name,age等这些通用的属性。但如果在Person里面定义一个简介(getIntroduction())的方法,就不好具体去叙述,这时候就可以交给子类自己去重写这个方法,比如Student类的getIntroduction()方法里面可以写“什么学校、什么专业、什么年级”等,Employee类里面就可以写“什么行业、什么职位”等。

所以Object很直接,不管你是什么类型,怎么进行比较,只要你们指向同一块内存,那你们就相等。比如String类,重写equals方法后比较的是字符串的具体值,但谁也不能否认,两个引用指向同一个地址时,值也一样相等。

---------------------刚好看到这,顺势把个人理解叙述一下,希望有用----------------

object比较java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于objective、object比较java的信息别忘了在本站进行查找喔。