解决这个问题一般有两种方法(我的认为)一:使用synchronized关键字,这个你们应该都很熟悉了,不解释了;二:使用Collections.synchronizedList();使用方法以下: 假如你建立的代码以下:List<Map<String,Object>> data=new ArrayList<Map<String,Object>>(); 那么为了解决这个线程安全问题你能够这么使用Collections.synchronizedList(),如: List<Map<String,Object>> data=Collections.synchronizedList(new ArrayList<Map<String,Object>>()); 其余的都没变,使用的方法也几乎与ArrayList同样,你们能够参考下api文档;额外说下 ArrayList与LinkedList;这两个都是接口List下的一个实现,用法都同样,但用的场所的有点不一样,ArrayList适合于进行大量的随机访问的状况下使用,LinkedList适合在表中进行插入、删除时使用,两者都是非线程安全,解决方法同上(为了不线程安全,以上采起的方法,特别是第二种,实际上是很是损耗性能的)。