需要帮助尝试声明java集合而不在eclipse中收到警告

时间:2015-07-27 23:04:51

标签: java generic-collections

我有以下java类,但我已经尝试了,我无法弄清楚如何正确编码以避免eclipse中的警告:

for (int i = 1; i < ar.length; i++) {
    System.out.println(i);
}

警告1是:我无法弄清楚如何摆脱eclipse中的警告&#34; LinkedList是一种原始类型。对泛型类型LinkedList的引用应该参数化&#34;

警告2是&#34;类型安全:未检查的调用排序(List,new Comparator(){})类型集合&#34;

的通用方法排序(List,Comparator)

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

List<Map.Entry<String, String>> list = new LinkedList<Map.Entry<String, String>>(
     myh.entrySet());
// in Java 7, you can just write new LinkedList<>(myh.entrySet())
// note that this is a List<Entry<String, String>>, not a List<String> as in the OP

Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
    public int compare(
           Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
       return o1.getValue().compareTo(o2.getValue());
    }
});

答案 1 :(得分:0)

删除原始类型;使用Entry<String,String>和菱形运算符(用于警告1)。像,

List<Entry<String, String>> list = new LinkedList<>(myh.entrySet());

然后将sort来电更改为比较Entry(s)。像,

Collections.sort(list, new Comparator<Entry<String, String>>() {
    public int compare(Entry<String, String> o1,
            Entry<String, String> o2) {
        return o1.getValue().compareTo(o2.getValue());
    }
});