Let's take a question: 
Given two strings s and t, write a function to determine if t is an anagram of s.
For example, s = "anagram", t = "nagaram", return true. s = "rat", t = "car", return false.
Method 1(Using HashMap ):
    public class Method1 {
    public static void main(String[] args) {
        String a = "protijayi";
        String b = "jayiproti";
        System.out.println(isAnagram(a, b ));// output => true
    }
    private static boolean isAnagram(String a, String b) {
        Map<Character ,Integer> map = new HashMap<>();
        for( char c : a.toCharArray()) {
            map.put(c,    map.getOrDefault(c, 0 ) + 1 );
        }
        for(char c : b.toCharArray()) {
            int count = map.getOrDefault(c, 0);
            if(count  == 0 ) {return false ; }
            else {map.put(c, count - 1 ) ; }
        }
        return true;
    }
}
Method 2 :
    public class Method2 {
public static void main(String[] args) {
    String a = "protijayi";
    String b = "jayiproti";
    System.out.println(isAnagram(a, b));// output=> true
}
private static boolean isAnagram(String a, String b) {
    int[] alphabet = new int[26];
    for(int i = 0 ; i < a.length() ;i++) {
         alphabet[a.charAt(i) - 'a']++ ;
    }
    for (int i = 0; i < b.length(); i++) {
         alphabet[b.charAt(i) - 'a']-- ;
    }
    for(  int w :  alphabet ) {
         if(w != 0 ) {return false;}
    }
    return true;
}
}
Method 3 :
    public class Method3 {
public static void main(String[] args) {
    String a = "protijayi";
    String b = "jayiproti";
    System.out.println(isAnagram(a, b ));// output => true
}
private static boolean isAnagram(String a, String b) {
    char[] ca = a.toCharArray() ;
    char[] cb = b.toCharArray();
    Arrays.sort(   ca     );
    Arrays.sort(   cb        );
    return Arrays.equals(ca , cb );
}
}
Method 4 : 
    public class Method4 {
public static void main(String[] args) {
    String a = "protijayi";
    String b = "jayiproti";
    //String c = "gini";
    System.out.println(isAnagram(a, b ));// output => true
}
private static boolean isAnagram(String a, String b) {
    Map<Integer, Integer> map = new HashMap<>();
    a.codePoints().forEach(code -> map.put(code, map.getOrDefault(code, 0) + 1));
    b.codePoints().forEach(code -> map.put(code, map.getOrDefault(code, 0) - 1));
    //System.out.println(map.values());
    for(int count : map.values()) {
       if (count<0) return false;
    }
    return true;
}
}