想要在 java 中从 char 数组创建字符流

新手上路,请多包涵

我想从一个 char 数组构造一个流来使用 java 8 功能,例如过滤器和映射。

 char[] list = {'a','c','e'};
Stream<Character> cStream = Stream.of(list);
// Stream<Character> cStream = Arrays.stream(list);

第一种方法不起作用(原因:将 cStream 更改为 Stream<char[]> )。注释行也不起作用(原因:数组类型中的方法 stream(T[]) 不适用于参数( char[] ))。

我知道如果 char[] list 更改为 int[] ,使用 IntStream 一切正常。但我不想每次都将 char[] 转换为 int[] 或者当我需要在 char 数组上使用流库时更改为列表。

原文由 Sangjin Kim 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
1 个回答

您可以使用 IntStream 生成索引,后跟 mapToObj

 char[] arr = {'a','c','e'};
Stream<Character> cStream = IntStream.range(0, arr.length).mapToObj(i -> arr[i]);

原文由 Alexis C. 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题