@Override public void loadCards( CardsView showCards, SortSetting sortSetting, BigCard bigCard, UUID gameId, boolean merge) { boolean drawImage = showCards.size() <= MAX_IMAGES; this.bigCard = bigCard; this.gameId = gameId; if (merge) { for (CardView card : showCards.values()) { if (!cards.containsKey(card.getId())) { addCard(card, bigCard, gameId, drawImage); } } for (Iterator<Entry<UUID, MageCard>> i = cards.entrySet().iterator(); i.hasNext(); ) { Entry<UUID, MageCard> entry = i.next(); if (!showCards.containsKey(entry.getKey())) { removeCardImg(entry.getKey()); i.remove(); } } } else { this.clearCards(); for (CardView card : showCards.values()) { addCard(card, bigCard, gameId, drawImage); } } // System.gc(); drawCards(sortSetting); this.setVisible(true); }