【发布时间】:2017-03-07 16:59:14
【问题描述】:
我每秒对数组进行 30 次排序(对象的 y 值)。现在,为了提高性能,我只想对位置发生变化的对象进行排序。 我将它们放在一个列表中,并在排序后清除列表。 但是我如何只对这些对象而不是整个数组进行排序呢?
public CustomOrthogonalTiledMapRenderer(TiledMap map, final GameScreen gameScreen) {
super(map);
this.gameScreen = gameScreen;
pComparator = new Comparator<Object>() {
@Override
public int compare(Object object, Object t1) {
float p1 = object.rectangle.getY();
float p2 = t1.rectangle.getY();
if (p1 > p2) {
return -1; // First bigger
} else if (p1 < p2) {
return 1; // Second bigger
} else
return 0; // They are the same
}
};
}
[...]
gameScreen.game.tiledMapHandler.objects.sort(...); //I want to sort all objects from the lastmodifiedobjects list there
gameScreen.game.tiledMapHandler.lastModifiedObjects.clear();
for (Object o : gameScreen.game.tiledMapHandler.objects) {
//render objects
【问题讨论】:
标签: java arrays performance sorting libgdx