首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CopyOnWriteArrayList尺寸变化

CopyOnWriteArrayList尺寸变化
EN

Stack Overflow用户
提问于 2015-01-14 08:31:23
回答 1查看 408关注 0票数 0

当所有访问相同CopyOnWriteArrayList的方法呈现、更新和运行时,呈现工作正常,但是update和majorUpdate打印CopyOnWriteArrayList的长度为0。以下是代码:

代码语言:javascript
复制
package main.world.layer;

import main.world.tile.ITile;
import org.newdawn.slick.Graphics;

import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

public class Layer {
    private List<ITile> tiles = new CopyOnWriteArrayList<ITile>();

    public void add(ITile tile){
        tiles.add(tile);
    }

    public void remove(ITile tile){
        tiles.remove(tile);
    }

    public void render(ITile tile, Graphics graphics){
        tile.render(graphics);
    }

    public void render(Graphics graphics){
        for(ITile tile : tiles){
            render(tile, graphics);
        }
    }

    public List<ITile> getTiles() {
        return tiles;
    }

    public void majorUpdate(ITile tile){
        tile.onMajorUpdate();
    }

    public void majorUpdate(){
        System.out.println("MAJOR UPDATE! " + tiles.size());
        for(ITile tile : tiles){
            majorUpdate(tile);
            System.out.println("major update");
        }
    }

    public void update(ITile tile, int delta){
        tile.update(delta);
    }

    public void update(int delta){
        System.out.println("update " + tiles.size());
        for(ITile tile : tiles){
            update(tile, delta);
            System.out.println("update");
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-14 08:34:57

如果大小打印为零,则要打印的tiles为零。很可能是在对另一个列表进行渲染、更新、majorUpdate时打印一个列表的大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27938633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档