作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 Java 比较陌生,正在尝试排序 LinkedHashMap<Integer, HtmlTagValues> newHtmlTagValues
哪里HtmlTagValues
是一个公共(public)类,它具有来自 HTML 页面的大量值。我想对最重要的值进行排序。
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
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"));
以下是我们如何按值、按属性“Top”对 map 进行排序
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));
您的排序 map 将如下所示
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
关于java - 如何对 LinkedHashMap<Integer, HtmlTagValues> 进行排序,其中 HtmlTagValues 是具有各种值的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56392183/
我是一名优秀的程序员,十分优秀!