需要看本系列其他文章的请转到:
前言
上一篇文章讲述了数据结构的基本知识以及链表的相关知识,地址:(一)Android数据结构学习与算法之链表,本文是系列文章的第二篇,讲的是数组
概述
数组的使用
数组在java中的实现为下:
String[] arr1 = new String[3];// 创建一个大小为3的数组
arr1[0] = "0";
arr1[1] = "1";
arr1[2] = "2";
String[] arr2 = new String[]{
"0", "1", "2"};// 创建一个大小为3的数据并赋值
相信大家都明白上述代码,但是实际开发中,像这样使用数组的地方并不多,我们更多的使用的是像ArrayList这样的数组,其实用容器来形容ArrayList更贴切,在他的内部维护着一个数组,我们可以非常方便的增删查改一个ArrayList就是因为容器中已经提供了大量的方法供我们使用且不需要我们自己维护,可以说是非常棒了。
数组的特点
数组分配在一块连续的数据空间上,所以在给他分配空间时必须要确定它的大小,像我们上面两种声明数组的方式都是确定了大小。但是链表却不同,它是一块动态的空间,可以随意的改变长短,所以初始化时不需要确定大小。
优点:
- 访问、查找元素的效率很高
缺点:
- 由于空间是固定的,所以插入和删除元素效率会很低
数组容器ArrayList
ArrayList我们使用的非常多,里面有很多方法都非常的好用,我们就通过这些方法来理解数组以及数组容器,形成数据结构的思想
构造方法
transient Object[] elementData;