Java高级篇 -- List选择及优化
在java编程中,我们常常使用到java自带的集合类List 以下为几点简单的优化建议: 1.Vector还是ArrayList Vector有其特有有点,其每个方法都为同步方法【synchronized】,所以是线程安全的,在多线程环境下,若多个进程同时访问受保护资源,用Vector就显得十分简洁,安全。 ArrayList为非线程安全的,若不是多线程环境,或多线程环境下资源不需要写、更新,只需要读取,使用,或资源不需要受保护,使用ArrayList就大大提高了效率。 线程安全的散列表将本来可以并行处理的任务进行排队,串行处理。 同样:Hashtable是线程安全的,HashMap是非线程安全的 2.设置ArrayList初始化容量 ArrayList不断增长过程中会自动扩增其空间,这无疑耗费一定的资源,时间。 如果已经预料到ArrayList将是一个很大的数组,并且你预料到它将变得异常庞大,可预先设置数组的大小,可以提高添加新元素的速度,并优化性能。 原来ArrayList list=new ArrayList(); 现在ArrayList list=new ArrayList(); list.ensureCapacity(N); 3.ArrayList与LinkedList 二者功能相当,但内部实现的数据结构不同 ArrayList通过object[]实现