在工作中经常遇到需要生成一个唯一不重复的Int值,我们自然会想到用UUID,但是UUID不是int,需要转为Int:
import java.nio.ByteBuffer;
import java.util.UUID;
public class UUIDConverter {
public static int convertToInt(UUID uuid) {
long mostSigBits = uuid.getMostSignificantBits();
long leastSigBits = uuid.getLeastSignificantBits();
ByteBuffer byteBuffer = ByteBuffer.allocate(16);
byteBuffer.putLong(mostSigBits);
byteBuffer.putLong(leastSigBits);
byte[] byteArray = byteBuffer.array();
int result = 0;
for (int i = 0; i < byteArray.length; i++) {
result = (result << 8) | (byteArray[i] & 0xff);
}
return result;
}
}