2017-03-07 13 views
0

我每秒排序我的數組30次(對象的y值)。現在,爲了提高性能,我只想對排名改變的對象進行排序。 我把它們放在一個列表中,並在排序後清除列表。 但是,我怎樣才能排序這些對象,而不是整個陣列?LibGDX/Java:只從另一個數組中排序對象

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 

回答

0

如果你有List,那麼可以首先調用subList上創建的範圍的圖,然後將結果進行排序(例如,Collections.sort(x.subList(begin,end(),mycomparator))。

如果您有對象數組,則Java允許您使用Arrays.sort對範圍內的數組進行排序。