java.lang.ClassCastException: java.util.HashMap 无法转换为 java.lang.Comparable

新手上路,请多包涵

我试图对我的 ArrayList 进行排序。

 java.util.ArrayList arList= new java.util.ArrayList();
   arList=getList();
   java.util.Collections.sort(arList);

我的 getList() 函数在这里

public ArrayList getList() throws Exception
{
ArrayList listItems = new ArrayList();
//Query executing here..............!
            while (rs.next())
                {
                HashMap hashList = new HashMap();
                hashList.put("name",rs.getString(1));
                hashList.put("id",rs.getBigDecimal(2));
                listItems.add(hashList);
                }
          return listItems;
}

但我面临错误: java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.Comparable

原文由 Nidheesh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

_第一件事_——

 java.util.ArrayList arList= new java.util.ArrayList();
arList=getList();

您创建第一个实例是不必要的。

_第二件事_——

 ArrayList listItems = new ArrayList();

这个列表包含列表 HashMap 并且 HashMap 没有实现 Comparable。

 java.util.Collections.sort(arList);

public static <T extends Comparable<? super T>> void sort(List<T> list)

列表包含 ( T ) 必须扩展 Comparable。

这就是为什么它填充 java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.Comparable

原文由 Subhrajyoti Majumder 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题