У меня есть это:Общие предупреждения Компаратор
import java.util.*;
import java.io.*;
class MyComparator<K,V> implements Comparator<Map.Entry<K,List<V>>> {
public int compare(Map.Entry<K,List<V>> me1, Map.Entry<K,List<V>> me2) {
List<V> v1 = me1.getValue();
List<V> v2 = me2.getValue();
if(v1.size() > v2.size())
return 1;
else if(v1.size() < v2.size())
return -1;
else
return 0;
}
}
public class Anagrams1 {
public static void main(String[] args) {
int minGroupSize = Integer.parseInt(args[1]);
// Read words from file and put into a simulated multimap
Map<String, List<String>> m = new HashMap<String, List<String>>();
try {
Scanner s = new Scanner(new File(args[0]));
while (s.hasNext()) {
String word = s.next();
String alpha = alphabetize(word);
List<String> l = m.get(alpha);
if (l == null)
m.put(alpha, l=new ArrayList<String>());
l.add(word);
}
} catch (IOException e) {
System.err.println(e);
System.exit(1);
}
// Print all permutation groups above size threshold
Collection<Map.Entry<String,List<String>>> c = m.entrySet();
Object[] arr = c.toArray();
Arrays.sort(arr, new MyComparator());
for(Object o : arr) {
if(m.get(o).size() >= minGroupSize)
System.out.println(o + " : " + m.get(o).size() + ": " + m.get(o));
}
}
private static String alphabetize(String s) {
char[] a = s.toCharArray();
Arrays.sort(a);
return new String(a);
}
}
Это дает мне два предупреждения:
javacode$ javac -Xlint:unchecked Anagrams1.java
Anagrams1.java:45: warning: [unchecked] unchecked method invocation: method sort in class Arrays is applied to given types
Arrays.sort(arr, new MyComparator());
^
required: T[],Comparator<? super T>
found: Object[],MyComparator
where T is a type-variable:
T extends Object declared in method <T>sort(T[],Comparator<? super T>)
Anagrams1.java:45: warning: [unchecked] unchecked conversion
Arrays.sort(arr, new MyComparator());
^
required: Comparator<? super T>
found: MyComparator
where T is a type-variable:
T extends Object declared in method <T>sort(T[],Comparator<? super T>)
Помощь нужна. Благодарю.
Ну, так как это третий вопрос (включая удаленный) о дженериках и (почти) одном и том же коде: вы когда-нибудь читали о дженериках? Как они работают и как их можно использовать? – Tom
@Tom Я прочитал учебник, и я читаю его снова. Я чувствовал, что получить советы от людей в дополнение к моему чтению будет хорошим и быстрым способом учиться. В настоящее время я читаю это: http://docs.oracle.com/javase/tutorial/extra/generics/subtype.html – abc