java从Collection<Long>到LongStream的直接转换
我有一个Collection<Long>
(从Map<UUID, Long>
的values()
方法获得),我想把它转换成LongStream
我能想到的最简单的方法是:
LongStream stream = map.values().stream().mapToLong(Long::longValue);
然而,让我印象深刻的是,应该有一种更简单的方法从盒装等价物的集合中获取原始流
我检查了StreamSupport
,只能找到StreamSupport.longStream(Spliterator.OfLong spliterator, boolean parallel)
,但似乎也没有一种简单的方法从Collection<Long>
获取OfLong
拆分器实例
当然,我可以创建自己的实用程序函数来执行上述mapToLong
功能,但如果有内置功能,我宁愿使用它。如果已经有人问过,我也要道歉——我搜索了一下,但什么也找不到
# 1 楼答案
使用
mapToLong
并不是那么复杂,所以简单的方法不会有太大的区别问题是,即使你知道你有一个
Collection<Long>
,它仍然是一个Collection
的对象。现在,如果有一个LongCollection
类,可能会有一个toLongStream()
方法,但那会有其他问题# 2 楼答案
标准库中没有快捷方式(或方便的转换方法)。我不认为你提到的方法有任何错误或冗长。这很简单,也很简单,你为什么还要找别的东西呢
您可以创建自己的实用程序类来支持它,尽管我不认为这会非常有帮助