dan*_*bim 6 java performance immutability guava
假设您要构建ImmutableSet/ List/ Map对象的副本,但过滤掉一些原始条目.实现这一目标的一种方法如下:
ImmutableList.copyOf(Iterables.filter(myObject, myObject.EQUALS));
Run Code Online (Sandbox Code Playgroud)
where myObject.EQUALS是Iterables.filter()操作的谓词.我认为这是一个非常优雅且易于阅读的实现.但是,一个构建两个列表对象(第一个通过Iterables.filter(...)调用,第二个通过ImmutableList.copyOf(...)),这是非常低效的.
有人知道更有效的方法吗?
我想最好的事情是将过滤器谓词添加到ImmutableSet/ List/ Map构建器,以便该对象必须只构造一次.但不幸的是,没有这样的参数.
Ald*_*ldo 16
结果Iterables.filter()只是对数据的一个视图myObject:新列表只是通过ImmutableList.copyOf()使用提供的过滤迭代器构建的Iterable
| 归档时间: |
|
| 查看次数: |
3823 次 |
| 最近记录: |