import java.util.*;

class Anagram {

    private final AnagramSubject anagramSubject;

    Anagram(String word) {
        anagramSubject = new AnagramSubject(word);
    }

    List<String> match(List<String> candidates) {
        List<String> anagrams = new ArrayList<String>();

        for (String candidate : candidates) {
            if (anagramSubject.anagramOf(candidate)) {
                anagrams.add(candidate);
            }
        }

        return anagrams;
    }

    static final class AnagramSubject {

        private final String word;
        private final char[] fingerprint;

        AnagramSubject(String other) {
            this.word = other;
            this.fingerprint = canonicalize(other);
        }

        boolean anagramOf(String other) {
            return !duplicate(other) && Arrays.equals(fingerprint,canonicalize(other));
        }

        private boolean duplicate(String other) {
            return word.equalsIgnoreCase(other);
        }

        private char[] canonicalize(String other) {
            char[] chars = other.toLowerCase().toCharArray();
            Arrays.sort(chars);
            return chars;
        }
    }
}


@@ -12,16 +12,52 @@
 .util.*;
+%0Aimport java.util.stream.Collectors;
 %0A%0Aclass 
@@ -264,104 +264,39 @@
     
-List%3CString%3E anagrams = new ArrayList%3CString%3E();%0A%0A        for (String candidate : candidates) %7B%0A
+return candidates.stream()%0A    
     
@@ -307,11 +307,15 @@
     
-if 
+.filter
 (ana
@@ -325,17 +325,18 @@
 mSubject
-.
+::
 anagramO
@@ -340,22 +340,9 @@
 amOf
-(candidate)) %7B
+)
 %0A   
@@ -358,81 +358,37 @@
     
-anagrams.add(candidate);%0A            %7D%0A        %7D%0A%0A        return anagrams
+.collect(Collectors.toList())
 ;%0A  

Simplify model answer