Question: I want to create a table that looks like the attached photo, but can only have 1 column to have input and the rest column are untouchable.

I am using SMSS 2014 in creating database and Visual Studio 2015 Community in frontend.

[enter image description here](http://i.stack.imgur.com/jf7TE.jpg)

Answer: 
The stream operations like filter are not that specialized to take an advantage in special cases. For example, `IntStream.range(0, 1_000_000_000).filter(x -> x > 999_999_000)` will actually iterate all the input numbers, it cannot just "skip" the first 999\_999\_000. So your question is reduced to find the collection with the most efficient iteration.

The iteration is usually performed in `Spliterator.forEachRemaining` method (for non-short-circuiting stream) and in `Spliterator.tryAdvance` method (for short-circuiting stream), so you can take a look into the corresponding spliterator implementation and check how efficient it is. To my opinion the most efficient is an array (either bare or wrapped into list with `Arrays.asList`): it has minimal overhead. `ArrayList` is also quite fast, but for short-circuiting operation it will check the `modCount` (to detect concurrent modification) on every iteration which would add very slight overhead. Other types like `HashSet` or `LinkedList` are comparably slower, though in most of applications this difference is practically insignificant.

Note that parallel streams should be used with care. For example, the splitting of `LinkedList` is quite poor and you may experience worse performance than in sequential case.
As far as I am aware, there's no such differenciation for normal streaming.

However, you might be better off when you use parallel streaming when you use a collection which is easily devideable, like ArrayList over LinkedList or any type of Set.