【问题标题】:guava - difference between Lists.transform(..., ...) and FluentIterable.from(...).transform(...)番石榴 - Lists.transform(..., ...) 和 FluentIterable.from(...).transform(...) 之间的区别
【发布时间】:2014-11-11 21:57:00
【问题描述】:

两者之间有什么区别(如果有的话)

Lists.transform(list, function)

FluentIterable.from(list).transform(function).toList()

?

【问题讨论】:

  • javadoc 是怎么说的?
  • Iterables.list() 的 javadoc 只声明它返回一个包含元素的列表。它没有说明它是否是视图。是吗?如果不是,那是唯一的区别吗?

标签: java list filter guava


【解决方案1】:

Lists.transform 返回一个List,它是原始List视图。如果您在原始列表中添加或删除项目,视图也会发生变化。

FluentIterable.from(list).transform 类似地返回原始列表的转换视图,但作为 FluentIterable 而不是 List。但是,当您在其上调用 toList() 时,您会返回一个 ImmutableList,如果原始列表发生更改(或永远不会更改),它不会更改。

【讨论】:

  • 谢谢,这正是我想知道的。正如另一条评论中所说,Iterables.list() 没有说明它是否是视图。
  • @TereaJato:Iterables.list() 是什么?如果您的意思是FluentIterable.toList(),它并没有明确表示“这不会返回视图”,但通常如果方法确实返回视图,它会声明这一点。此外,ImmutableList 永远不能代表可能是可变的事物。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-12
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
相关资源
最近更新 更多