1.把原来的字符串数组strs进行排序后保存到另一个字符串数组s中;
2.排序以后相同的自然会出现;
3.设置一个相同长度的boolean[] flag,遍历flag数组,相同设置为true;
4.ArrayList添加索引位置为true的字符串。

import java.util.*;
public class Solution {
    public ArrayList<String> anagrams(String[] strs) {
        ArrayList<String> list = new ArrayList<>();
        if(strs==null||strs.length==0){
            list.add("");
            return list;
        }
        int len = strs.length;
        String[] s = new String[len];
        boolean[] flag = new boolean[len];
        //对数组strs中的每一个字符串进行排序后添加到对应的数组s中
        for(int i=0;i<len;i++){
            s[i] = sort(new StringBuilder(strs[i]));
        }
        //遍历数组s,如果遇到相同的则将对应位置的flag设置为true
        for(int i=0;i<len;i++){
            for(int j=i+1;j<len;j++){
                if(s[i].equals(s[j])){
                    flag[i]=true;
                    flag[j]=true;
                }
            }
        }
        //list添加strs数组对应位置的字符串
        for(int i=0;i<len;i++){
            if(flag[i])
                list.add(strs[i]);
        }
        return list;
    }
    public String sort(StringBuilder s){
        for(int i=0;i<s.length();i++){
            for(int j=s.length()-2;j>=i;j--){
                if(s.charAt(j)>s.charAt(j+1)){
                    char temp = s.charAt(j);
                    s.setCharAt(j,s.charAt(j+1));
                    s.setCharAt(j+1,temp);
                }

            }
        }
        return s.toString();
    }
}