Change your method signature to:
public static int maxSimilarity(ArrayList<?> g, ArrayList<? extends ArrayList<?>> groups)
In general, they prefer to use interface types instead of real implementations (more flexible, less code):
public static int maxSimilarity(List<?> g, List<? extends List<?>> groups)
[edit] , -, :
public static <T> int maxSimilarity(List<? extends T> g, List<? extends List<? extends T>> groups)
, ? extends T. , , ,
List<List<StringBuilder>> groups =
List<String> g =
maxSimilarity(g, groups);
(StringBuilder String CharSequence, ).