Here I will be covering streams. Streams are great ways to essentially sort through lists.
Why should we use streams?
Since you can do just about anything with them in a single line of code.
There are cases where streams probably aren't the most useful, take this:
NPC guard = getNpcs().closest("Guard");
This is our bog standard way of grabbing the closest "Guard" npc. What it would actually be doing behind the scenes would be using a stream like so:
public NPC closest(String name) {