java long 转int数组
时间: 2023-11-27 09:04:24 浏览: 145
你可以使用以下代码将一个 long 类型的数值转换为 int 数组:
```java
long number = 1234567890L; // 要转换的 long 数值
int[] array = new int[Long.SIZE / Integer.SIZE]; // 创建 int 数组
for (int i = 0; i < array.length; i++) {
array[i] = (int) (number >> (i * Integer.SIZE));
}
```
在上述代码中,我们首先声明一个 long 类型的变量 `number`,它是要转换的数值。然后,我们创建一个 int 数组 `array`,该数组的长度为 `Long.SIZE / Integer.SIZE`,这是因为 long 类型的大小是 int 类型的大小的两倍。
接下来,我们使用一个循环,将 long 数值逐个转换为 int,并存储到数组中。在每次迭代中,我们使用右移运算符 `>>` 将 long 数值按位右移 `i * Integer.SIZE` 位,然后将结果强制转换为 int 类型并赋值给数组元素。
请注意,由于 long 类型的大小超过了 int 类型的范围,因此可能会丢失一些信息。因此,在进行转换时,请确保 long 数值不超过 int 类型的表示范围。
相关问题
java Long数组 转 Integer 数组
可以使用Java中的循环和类型转换来将Long数组转换为Integer数组。下面是一个示例代码:
```java
Long[] longArray = {1L,2L, 3L};
Integer[] intArray = new Integer[longArray.length];
for (int i = 0; i < longArray.length; i++) {
intArray[i] = longArray[i].intValue();
}
```
在上面的代码中,我们首先定义了一个Long类型的数组longArray,然后定义了一个与其长度相同的Integer类型的数组intArray。接下来,我们使用for循环遍历longArray数组,并将每个元素转换为Integer类型并存储在intArray数组中。
java set集合转为int数组
将 Java 中的 Set 集合转换为 int 数组,可以使用 Java 中的流(Stream) API。例如,假设我们有一个 Set 集合:
```
Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(3);
```
我们可以使用流 API 将 Set 集合转换为 int 数组:
```
int[] array = set.stream().mapToInt(Integer::intValue).toArray();
```
在这个例子中,我们首先使用流 API 将 Set 集合转换为 IntStream 对象,然后使用 mapToInt() 方法将 IntStream 对象中的 Integer 对象转换为 int 值,最后使用 toArray() 方法将 IntStream 对象转换为 int 数组。
需要注意的是,如果 Set 集合中存在 null 值,则在使用 mapToInt() 方法时会抛出 NullPointerException 异常。如果需要避免这种情况,可以使用 mapToInt() 方法的变体 mapToInt(i -> i == null ? 0 : i) 将 null 值转换为默认值。
另外,如果 Set 集合中存在超出 int 类型范围的值,则在使用 mapToInt() 方法时会抛出 ArithmeticException 异常。如果需要避免这种情况,可以使用 mapToLong() 方法将 Integer 对象转换为 long 值。
阅读全文