java - PriorityQueue 和比较器 - Java
问题描述
尝试创建一个以字符串长度为排序因素的优先级队列,但比较器似乎不起作用。如果我在 SortedSet 上使用相同的运算符,则效果很好。
以下代码打印: [z, CD, ZHE21, CDE2312, ABC1]
而我期待的是:[z,CD,ABC1,ZHE21,CDE2312]
我错过了什么?
PriorityQueue<String> queue = new PriorityQueue<String>(100, new Comparator<String>() {
public int compare(String a, String b) {
return Integer.compare(a.length(), b.length());
}
});
queue.add("CDE2312");
queue.add("ABC1");
queue.add("ZHE21");
queue.add("CD");
queue.add("z");
System.out.println(queue);
解决方案
推荐阅读
- python - 在 PyCharm 中设置虚拟环境时出现错误:Error: [WinError 2] The system can't find the files
- python-3.x - 我的 BST 函数查找左子树的最大元素和右子树的最小元素不会返回值
- gitlab - 在更改 external_url 时出现此 gitlab 错误
- python - 如何创建具有某些权限的组
- android - 为什么即使我在 xml 中有按钮 ID,它仍然会显示“未解析的引用:按钮”?
- apexcharts - 如何让 APEXChart 从 JSON AJAX 响应中呈现
- windows - GitLab Runner 未启动进程
- flutter - 无法从动画列表中删除项目'getter 'currentState' 在 null 上被调用。接收者:null 尝试调用:currentState'
- javascript - React Native NavigationContainer 不显示任何内容
- html - 在某些分辨率下,嵌入式 div 中出现不需要的空白 [chrome]