什么是集合的视图?使用场景?
⭐️⭐️
集合的视图是一个独立对象,它不包含集合本身的数据,但记录了本集合的所有操作。简单理解,集合的视图就是一个惰性迭代器,且不允许更新数据。
集合的视图通过非严格求值(lazy)操作,减少生成中间态集合,以提升性能,并减少内存占用。因为在一个集合上的多个链式方法调用,可能生成多个中间态集合,而中间态并不是最终需要的集合。
使用force方法时或者非视图操作时(foreach),视图上的操作才会被真正执行生成最终的新集合。
这里的集合的操作指:map、filter这种,它们会使用builder隐式参数来创建新集合,而视图的map没有使用builder。
场景:需要对一个比较大的集合使用多次map、filter等操作,但你不关心中间的操作何时完成。
这里的关键是必须了解传名参数和lazy,否则难以理解原理。
答到1.2.3.5及格,可以不知道force方法。答全满分。
Last updated
Was this helpful?