成都网站设计网站,建筑设计网站,百度广告,公信域名和网站建设是一样的吗为什么80%的码农都做不了架构师#xff1f; 在java编程中#xff0c;我们常常使用到java自带的集合类List 以下为几点简单的优化建议#xff1a; 1.Vector还是ArrayList Vector有其特有有点#xff0c;其每个方法都为同步方法【synchronized】#xff0c… 为什么80%的码农都做不了架构师 在java编程中我们常常使用到java自带的集合类List 以下为几点简单的优化建议 1.Vector还是ArrayList Vector有其特有有点其每个方法都为同步方法【synchronized】所以是线程安全的在多线程环境下若多个进程同时访问受保护资源用Vector就显得十分简洁安全。 ArrayList为非线程安全的若不是多线程环境或多线程环境下资源不需要写、更新只需要读取使用或资源不需要受保护使用ArrayList就大大提高了效率。 线程安全的散列表将本来可以并行处理的任务进行排队串行处理。 同样:Hashtable是线程安全的HashMap是非线程安全的 2.设置ArrayList初始化容量 ArrayList不断增长过程中会自动扩增其空间这无疑耗费一定的资源时间。 如果已经预料到ArrayList将是一个很大的数组并且你预料到它将变得异常庞大可预先设置数组的大小可以提高添加新元素的速度并优化性能。 原来ArrayList listnew ArrayList(); 现在ArrayList listnew ArrayList(); list.ensureCapacity(N); 3.ArrayList与LinkedList 二者功能相当但内部实现的数据结构不同 ArrayList通过object[]实现LinkedList通过链表。 由此易得 ArrayList随机访问顺序添加效率均高于LinkedList只要用于变动较小的集合存储 对其添加、删除某位置元素将移动所有后方元素效率太低 LinkedList:在某个位置增删效率较高用于变动较为频繁的集合存储 4.遍历 若List不发生大小变动【循环中无remove,add操作】即不用每次检测其大小 原来 for (int i 0; i vector.size (); i) 改为 for (int i 0,nlist.size (); i n; i) 不用每次循环都检测其大小效率将大大提高 5.使用 除非十分必要否则尽量使用java提供的集合不要自己书写功能类似的方法 转载于:https://my.oschina.net/julycn/blog/331742