MENU

操作数组的几个技巧

2019 年 07 月 05 日 • 阅读: 69 • 算法

插入

如果仅将数组当作数据集合使用,无需考虑元素的顺序,那么将元素插入到第 k 个位置的操作可简化为:将第 k 个位置的元素插入到数组尾,将新元素放到第 k 个位置上。快速排序便利用了该思想。

删除

需要删除多个元素时,仅作标记,待所有位置标记完毕后再触发数据搬移。这也是 JVM 中 Garbage Collection 的思想。

数组和容器的选择

以 Java 为例,ArrayList 无法存储基本数据类型,只能存储其包装类,如果仅操作基本数据类型,且尤其关注性能,仍应选用数组。其次,如数据大小已知,操作又比较简单,也可直接使用数组。再次,多维数组,Object[][]ArrayList<ArrayList> 的形式更加直观。最后,使用 ArrayList 时,若数据大小已知,应指定其大小,避免动态扩容带来的时空消耗。

最后编辑于: 2019 年 08 月 02 日