書き尽くされている気がするけど、自分のメモとしてまとめておきます。

基本

 String[] array = {"AAA", "BBB", "CCC", "DDD", "EEE", "FFF"};
Stream<String> stream = Arrays.stream(array);//配列をStreamに変換する

//全ての要素がラムダの条件を満たしているか
//全てが条件に当てはまればtrueが返る
stream.allMatch(s -> s.length() == 3);//true
stream.allMatch(s -> s.equals("AAA"));//false

//いずれかの要素がラムダの条件を満たしているか
//どれか1つが条件に当てはまればtrueが返る
stream.anyMatch(s -> s.length() == 3);//true
stream.anyMatch(s -> s.equals("AAA"));//true

//すべての要素に条件がマッチしないか
//全て当てはまらなければtrueが返る
stream.noneMatch(s -> s.length() == 3);//false
stream.noneMatch(s -> s.equals("AAA"));//false
stream.noneMatch(s -> s.equals("ZZZ"));//true

//等しいオブジェクト(Object.equals() == true)を1つにまとめる
String str = "AAA";
String str2 = str;
Arrays.asList(str, str2).stream().distinct()//AAA

//1つずつ要素を取り出して処理する
stream.forEach(s -> System.out.print(s + ":"));//AAA:BBB:CCC:DDD:EEE:FFF:

//すべての要素を加工する
stream.map(s -> "[" + s + "]");//[AAA][BBB][CCC][DDD][EEE][FFF]

//最大値最小値を求める
//引数にはjava.util.Comparatorを与える
Arrays.asList("AAA", "BBB", "CCC", "A", "B", "AB").stream().max((s1, s2) -> s1.length() - s2.length());//Optional[AAA]
Arrays.asList("AAA", "BBB", "CCC", "A", "B", "AB").stream().min((s1 , s2) -> s1.length() - s2.length())//Optional[A]

//filterの条件に合うものだけ抽出する
Arrays.asList("AAA", "BBB", "CCC", "A", "B", "AB").stream().filter(s -> s.length() > 2);//AAA BBB CCC

//畳み込みを行う
//うまく説明できないのでコード見て察して
Arrays.asList("A", "BBB", "ABCDEF", "AB").stream().reduce("", (s1 , s2) -> s1.length() < s2.length() ? s2 : s1 );

//引数の値まで動かす
stream.limit(4).forEach(System.out::println);//AAA BBB CCC DDD

//引数の値から動かす
stream.skip(2).forEach(System.out::println);//CCC DDD EEE FFF

//パラレルストリームを使用
stream.parallel()//パラレルに処理するストリームを作成

//要素数を数える
stream.count();//6

コレクタを使う
java.util.stream.Collectorの一部をまとめてみた

stream = Arrays.asList("AAA", "BBB", "CCC", "A", "B", "AB").stream();

//グループ分け
//ラムダの戻り値によってグループ分けをする。戻り値はMap
stream.collect(Collectors.groupingBy(s -> s.length()));//{1=[A, B], 2=[AB], 3=[AAA, BBB, CCC]}

//連結を行う
stream.collect(Collectors.joining());//AAABBBCCCABAB
stream.collect(Collectors.joining(","));//AAA,BBB,CCC,A,B,AB

//要素数をカウント
stream.collect(Collectors.counting());//6

//最大値・最小値を求める
//stream.max stream.minと同じ
stream.collect(Collectors.maxBy((s1 , s2) -> s1.length() - s2.length()));//Optional[AAA]
stream.collect(Collectors.minBy((s1 , s2) -> s1.length() - s2.length()));//Optional[A]

最後に配列やリストへの変換

Arrays.stream(array);//配列をStreamに変換
stream.toArray();//Streamを配列に変換
list.stream();//ListをStreamに変換
stream.collect(Collectors.toList());//StreamをListに変換