我对Java比较陌生,因此尝试对LinkedHashMap<Integer, HtmlTagValues> newHtmlTagValues
进行排序,其中HtmlTagValues
是一个公共类,它具有HTML页面中的许多值。我想对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);
答案 0 :(得分:0)
我认为HtmlTagValues类中有一个用于所有属性的构造器
public HtmlTagValues(String top, String height, String width, String left) {
this.top = top;
this.height = height;
this.width = width;
this.left = left;
}
注意:我还假设您每个属性都有获取者/设置者。
现在假设我们有以下地图
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<String, Student> 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")