Abstract : Filtering, mapping, and iterating collections are frequent operations. It is known that composing a number of these operations may create intermediate collections causing an additional and unnecessary overhead. To reduce the number of intermediate collections it is often necessary to rewrite the source code and combine the operations. However, for some cases such reduction becomes aplicable only after a source code refactoring (i.e., when the collection operations are in different methods) which could introduce code duplication. In this paper we propose Collection Promises to dynamically compose collection operations in order to reduce the number of unnecessary intermediate collections. Collection Promises delay a number of collection operations and then merge them using compositions rules. By using Collection Promises developers can automatically reduce the intermediate collections even if the collection operations are in different methods.