I'm developing a game in Android using LibGDX (although this is more of a JAVA problem than an engine problem). My aim is to have my player bounce off one spring onto another that will eventually take him over an obstacle like so:

I have a feeling the lag is because im creating new objects in a method that gets called in update(). This is because I had the same issue with coins in the game until I stopped initialising the Coinobject in a method that gets called by update() - now they work smoothly.
However, I'm not sure how to implement the spring collision without initialising Spring objects. Currently, objects are initialised through a text file - however, Spring is only initialised in a Box object rather than the text file. In my update() method I loop through the objects and if an object is a Box which contains a Spring, the following method is called:
public void playerSpringCollision(Box containsSpring) { // first spring (on the box) Spring boxSpring = containsSpring.getSpring(); // second spring (on the platform) Spring platformSpring = containsSpring.getPartnerPlatform().getSpring(); // distance in x between first & second spring float dx = platformSpring.getxPos() + platformSpring.getSprite().getWidth() - boxSpring.getxPos() - player.getSprite().getWidth(); // distance in y between first & second spring float dy = platformSpring.getyPos() - boxSpring.getyPos(); directionToSpring.x = dx; directionToSpring.y = dy; // if player collides with first spring if (player.getRectangle().overlaps(boxSpring.getRectangle())) { player.springImpulse(directionToSpring); // send player to platform spring } // if player collides with second spring if (player.getRectangle().overlaps(platformSpring.getRectangle())) { directionToObstacle.x = -directionToSpring.x; directionToObstacle.y = directionToSpring.y; player.springImpulse(directionToObstacle); // send player over obstacle } } I'm not sure how to do this without initialising Spring and Vector2 objects in the method - any ideas? Highly grateful for any help, thanks.