【发布时间】:2015-07-14 06:57:48
【问题描述】:
我需要根据类的方法返回的浮点数对自定义类(Face)的一些对象进行排序。
我决定使用排序映射,但我意识到 Collection 不会返回重复的键。
这是我的代码:
sorted.clear();
for(Face f : face) {
sorted.put(f.getFarthestDepth(), f);
}
//Code for printing entries of the sortedTree
for(Map.Entry entry : sorted.entrySet())
print(entry.getKey() + " ");
println();
在我的渲染方法上我有:
pushMatrix();
translate(center.x, center.y);
for(Map.Entry entry : sorted.entrySet()) {
Face f = (Face)entry.getValue();
beginShape();
fill(255);
for (Vertex v : f.vertex) {
vertex(v.x, v.y);
}
endShape(CLOSE);
}
popMatrix();
当我打印树形图的条目时,我只得到 2 个值,我需要得到 6 个具有相同键值的值。
我正在使用Processing,但代码几乎与java相似。
如何获取所有 Face 对象?
【问题讨论】:
-
一张地图中不能有多个具有相同键值的对象。如果要支持重复元素,请考虑使用列表。
-
使用地图
> 代替地图 ? -
您似乎有一组面孔。为什么不根据您的 Face 浮点值实现 Comparator 并调用
Collection#sort -
@JBNizet 有什么区别?我会得到重复的键值吗?我还应该进行哪些其他更改?
-
不同之处在于,对于每个浮点数,您可以对具有此浮点值的所有面进行排序,而不仅仅是一个。也就是说,Map 对于能够从键中获取值很有用。但是您的代码从不这样做。你为什么首先使用地图?为什么不只是一个排序列表?
标签: java processing sortedmap