gpt4 book ai didi

java - 如何对 LinkedHashMap 进行排序,其中 HtmlTagValues 是具有各种值的类?

转载 作者:行者123 更新时间:2023-12-02 04:59:49 24 4
gpt4 key购买 nike

我对 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com