【发布时间】:2017-03-17 21:58:59
【问题描述】:
要连接两个库,我需要将保存字节的 int[] 数组转换为仅包含低字节的 byte[] 数组。 (我需要用 0xFF 屏蔽 int 并将它们存储在 byte[] 数组中。)我只能找到如何在转换 int 的所有 4 个字节时执行此操作的示例,而我不需要。
作为一个练习,我希望在纯 Java 8 中使用一些简短而高效的东西(即没有外部库、调用或 SOUP 的有效 Java 8 代码)。我尝试使用流,但找不到有效的 map();例如:
byte[] mybytarray = Arrays.asList(myintarray).stream().map(v -> v & 0xFF).collect(toList()).toArray(byte[]::new);
但出现错误“无法推断 map(Function) 的类型参数”,我不明白如何编写地图。
【问题讨论】:
-
你不能创建一个基元列表。查找
Arrays.stream和原始流。 -
@user2357112 没有字节流。
-
@ThorbjørnRavnAndersen:是的,所以你需要一个 IntStream。
标签: java java-stream