2017-03-07 3 views
0

私の配列は1秒間に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を使用して範囲内の配列を並べ替えることができます。

関連する問題