Nothing requires a lambda. In your case, a for-loop can do the same thing:
int maxCnt = 0;
for (var a : incoming) {
Integer cnt = wordFrequency.get(a);
if (cnt != null && cnt > maxCnt) maxCnt = cnt;
}
This is readable and performs well; you aren't losing anything by not using a lambda—today.
In the future, with advances in the performance of parallel streams maybe it will become worthwhile to run even small workloads in parallel. In other words, more streams could default to being parallel instead of sequential. In such a future, using a Stream
and lambdas instead of this for-loop would allow your code to take advantage of those improvements without a rewrite.