Objects类库

Objects类库的作用

此类包含static实用程序方法,用于操作对象或在操作前检查某些条件。 这些实用程序包括null或null方法,用于计算对象的哈希代码,返回对象的字符串,比较两个对象,以及检查索引或子范围值是否超出范围。

方法摘要

以下是Objects类含有的一些静态方法及代码演示:

方法1:checkFromIndexSize​(int fromIndex, int size, int length)

变量和类型:static int
描述:检查是否在子范围从 fromIndex (包括)到 fromIndex + size (不包括)是范围界限内 0 (包括)到 length (不包括)。 简单理解就是:[fromIndex, fromIndex + size )是否被包含于[0,length)。

如果以下任何不等式为真,则子范围被定义为超出界限:
fromIndex < 0
size < 0
fromIndex + size > length ,考虑到整数溢出
length < 0 ,这是前者的不平等所暗示的

代码演示:
package com.java.demo1;

import java.util.Objects;

public class Demo1 {
    public static void main(String args[]){
        int b = Objects.checkFromIndexSize(6,10,16);
        System.out.println(b);
    }
}

执行结果:
在这里插入图片描述
小结:
执行结果:
1、如果子范围在范围的范围内,返回值为:fromIndex
2、如果子范围超出范围,生成一个异常对象-IndexOutOfBoundsException

方法2:checkFromToIndex​(int fromIndex, int toIndex, int length)

变量和类型:static int
描述:检查是否在子范围从 fromIndex (包括)到 toIndex (不包括)是范围界限内 0 (包括)到 length (不包括)。  简单理解就是:[fromIndex,toIndex)是否被包含于[0,length)。

如果以下任何不等式为真,则子范围被定义为超出界限:

fromIndex < 0
fromIndex > toIndex
toIndex > length
length < 0 ,这是前者的不平等所暗示的

代码演示:
package com.java.demo1;

import java.util.Objects;

public class Demo1 {
    public static void main(String args[]){
        int b = Objects.checkFromToIndex(6,7,7);
        System.out.println(b);
    }
}

执行结果:
在这里插入图片描述
小结:
执行结果:
1、如果子范围在范围的范围内,返回值为:fromIndex
2、如果子范围超出范围,生成一个异常对象-IndexOutOfBoundsException

方法3:checkIndex​(int index, int length)

变量和类型:static int
描述:检查 index是否在 0 (含)到 length (不包括)范围内。  简单理解就是:index是否被包含于[0,length)。

如果以下任何不等式为真,则定义index超出范围:

index < 0
index >= length
length < 0 ,这是前者的不平等所暗示的

代码演示:
package com.java.demo1;

import java.util.Objects;

public class Demo1 {
    public static void main(String args[]){
        int b = Objects.checkIndex(6,7);
        System.out.println(b);
    }
}

执行结果:
在这里插入图片描述
小结:
执行结果:
1、如果index在[0,length)范围内,返回值为:Index
2、如果index不在[0,length)范围内,生成一个异常对象-IndexOutOfBoundsException

方法4:deepEquals​(Object a, Object b)

变量和类型:static boolean
描述:如果参数是深层相等返回 true,其他返回false。  
对于基本数据类型来说,若是值相等则返回true。
对于引用数据类型来说,若是地址相等则返回true,否则继续判断值是否相等,相等则返回true,否则返回false。

代码如下:
public static boolean deepEquals(Object a, Object b) {
        if (a == b)
            return true;
        else if (a == null || b == null)
            return false;
        else
            return Arrays.deepEquals0(a, b);
    }

小结:相较于Objects中的equals方法deepEquals能够对引用数据类型进行深层的判断。

方法5:equals​(Object a, Object b)

变量和类型:static boolean
描述:如果参数相等返回 true,其他返回false。
对于基本数据类型若是值相等则返回true,否则返回false。
对于引用数据类型来说,若是地址相等则返回true,否则返回false

代码如下:
public static boolean equals(Object a, Object b) {
        return (a == b) || (a != null && a.equals(b));
    }

小结:Objects类中的equals方法相较于deepEquals方法来说,对于基本数据类型的判断结果是一样的,对于引用数据类型的判断equals只能够对地址进行判断,而不能进行更加深入的判断。

总结:

以上是我对Objects类库中部分方法的总结,希望各位大佬多多指正!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值