java - 如何对 LinkedHashMap 进行排序HtmlTagValues 是一个具有各种值的类?
问题描述
我对 Java 比较陌生,并试图从 HTML 页面中对具有大量值的公共类LinkedHashMap<Integer, HtmlTagValues> newHtmlTagValues
进行排序。HtmlTagValues
我想对 Top 值进行排序。
public class HtmlTagValues {
public String Top;
public String Height;
public String Width;
public String Left;
....
}
这些值以下列方式存储。
HtmlTagValues v = new HtmlTagValues();
v.Top = topValue;
v.Left = leftValue;
hHtmlTagValues.put(nPage + ElementID, v);
解决方案
我认为所有属性的 HtmlTagValues 类中都有一个构造函数
public HtmlTagValues(String top, String height, String width, String left) {
this.top = top;
this.height = height;
this.width = width;
this.left = left;
}
注意:我还假设每个属性都有 getter/setter。
现在假设我们有以下地图
Map<Integer, HtmlTagValues> map = new LinkedHashMap<>();
map.put(1, new HtmlTagValues("Z", "10", "768", "100"));
map.put(2, new HtmlTagValues("A", "10", "768", "100"));
map.put(3, new HtmlTagValues("B", "10", "768", "100"));
map.put(4, new HtmlTagValues("D", "10", "768", "100"));
map.put(5, new HtmlTagValues("C", "10", "768", "100"));
这是我们如何按值对地图进行排序的方法,按属性“顶部”
Map<Integer, HtmlTagValues> sortedMap = map.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue(Comparator.comparing(HtmlTagValues::getTop)))
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
您的排序地图将如下所示
2,HtmlTagValues("A", "10", "768", "100")
3,HtmlTagValues("B", "10", "768", "100")
5,HtmlTagValues("C", "10", "768", "100")
4,HtmlTagValues("D", "10", "768", "100")
1,HtmlTagValues("Z", "10", "768", "100")
完整的工作示例:
https://gist.github.com/mackatozis/8aa81597bc33d885635cb3a9935e5cd5
推荐阅读
- python - 如何在 django restframework 中设置视图
- mule - 对于这种情况,如何在 Anypoint 工作室中使用“选择路由器”?
- c# - Cannot access asp .net core app when run with docker on local machine, or to kubernetes
- javascript - 向 PayPal Payouts REST API 发送请求返回 HTTP 代码 204 且无内容
- azure - Azure 数据工厂链接服务错误 - 无法从密钥保管库获取机密
- c# - 在 C# 中将其格式化为“YYYY-MM-DD”后的日期更改
- apollo-client - Apollo GraphQL 客户端“网络错误:在未定义的对象上找不到字段 XXXX”,disableOffline:false
- python - __getattr__ 的奇怪问题,其中项目字符串在调用期间被更改
- mysql - 将 Solr 文档元信息导出到 MySQL
- python - 如何重复一个字符串直到另一个字符串的长度,包括空格?