Java Long类hashCode()方法及示例

长类hashCode()方法 (Long class hashCode() method)

  • hashCode() method is available in java.lang package.

    hashCode()方法在java.lang包中可用。

  • hashCode() method is used to return hashcode of the Long object.

    hashCode()方法用于返回Long对象的哈希码。

  • hashCode() method is a non-static method, it is accessible with the class object only and if we try to access the method with the class name then we will get an error.

    hashCode()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。

  • hashCode() method does not throw an exception at the time of returning hash code.

    hashCode()方法在返回哈希码时不会引发异常。

Syntax:

句法:

    public int hashCode();

Parameter(s):

参数:

  • It does not accept any parameter.

    它不接受任何参数。

Return value:

返回值:

The return type of this method is int, it returns hashcode for this object.

此方法的返回类型为int ,它返回此对象的哈希码。

Example:

例:

// Java program to demonstrate the example 
// of hashCode() method of Long class

public class HashCodeOfLongClass {
    public static void main(String[] args) {
        // Variables initialization
        long value1 = 30;
        long value2 = 10;

        // It returns hashcode value denoted by this Long ob1 object
        // by calling ob1.hashCode()
        Long ob1 = new Long(value1);

        // Display ob1 result
        System.out.println("ob1.hashCode(): " + ob1.hashCode());

        // It returns hashcode value denoted by this Long ob2 object
        // by calling ob2.hashCode()
        Long ob2 = new Long(value2);

        // Display ob2 result
        System.out.println("ob2.hashCode(): " + ob2.hashCode());
    }
}

Output

输出量

ob1.hashCode(): 30
ob2.hashCode(): 10


翻译自: https://www.includehelp.com/java/long-class-hashcode-method-with-example.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中生成16位的long型id可以通过以下几种方式来实现。 1. 时间戳加随机数:使用System.currentTimeMillis()方法获取当前时间的毫秒数,并加上一定范围内的随机数,再取长整型的后16位,作为ID值。代码示例: ```java long id = (System.currentTimeMillis() + new Random().nextInt(9999)) & 0xFFFF; ``` 2. UUID哈希:使用java.util.UUID生成一个唯一标识符UUID,然后将其进行哈希处理,取长整型的后16位作为ID值。代码示例: ```java UUID uuid = UUID.randomUUID(); long id = (long) Math.abs(uuid.hashCode()) & 0xFFFF; ``` 3. Snowflake算法:Snowflake算法是Twitter开源的分布式ID生成算法,可以生成唯一且递增的ID。Snowflake算法的实现需要一个工作机器ID和一个序列号,根据时间戳、机器ID和序列号计算ID值。代码示例: ```java public class SnowflakeIDGenerator { private static final long EPOCH = 1451577600000L; // 设置一个起始时间戳,如2016-01-01 00:00:00 private static long lastTimestamp = -1L; private static long sequence = 0L; public synchronized static long generateID(long workerId) { long timestamp = System.currentTimeMillis(); if (timestamp < lastTimestamp) { throw new RuntimeException("Clock moved backwards. Refusing to generate ID."); } if (timestamp == lastTimestamp) { sequence = (sequence + 1) & 0xFFFF; if (sequence == 0) { // 当前毫秒的序列号用完,等待下一毫秒生成 timestamp = tilNextMillis(lastTimestamp); } } else { sequence = 0L; } lastTimestamp = timestamp; // 时间戳占41位,工作机器ID占10位,序列号占13位 long id = ((timestamp - EPOCH) << 23) | (workerId << 13) | sequence; return id; } private static long tilNextMillis(long lastTimestamp) { long timestamp = System.currentTimeMillis(); while (timestamp <= lastTimestamp) { timestamp = System.currentTimeMillis(); } return timestamp; } } ``` 使用时,调用generateID方法并传入一个工作机器ID即可生成16位的long型ID。 以上是几种常见的生成16位long型ID的方式,在实际使用中可以根据具体需求选择合适的方式进行生成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值