- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
技术总结_数组_王惠霞
Array(数组)
一.概要
数组是一种数据结构,用来存储同一类型值的集合。通常我们通过一个整数下标来访问数组中的每一个值。
Java所有“存储及随机访问一连串对象”的做法,array是最有效的一种。但缺点是:容量固定且无法动态改变,并且无法判断其中实际存有多少元素,length只是告诉我们array的容量。
若撰写程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,不适用需要使用g[] arr = new String[] {here, there, where};
for (String one:arr) {
System.out.println(one);
}
如果需要处理一个集合中的所有元素的话,“for each”循环语句的改进的确让人省心。然而,在很多情况下,还是需要使用传统的for语句。例如:如果不希望遍历整个集合,或者在循环内部需要操作下标值就需要使用传统的for循环。
2.数组初始化
在Java中,提供一种创建数组对象并同时赋予初始值的简化书写形式。
Int[] myArr = {1,3,5,7,9,11};
甚至还可以初始化一个匿名数组:
new int[] {2,4,6,8,10};
在java中,允许数组的长度为0。在编写一个结果为数组的方法时,如果碰巧结果为空,那么这种语法形式就显得非常有用。此时,可以创建一个长度为0的数组:new String[0],注意:数组长度为0,与null不同。
3. 数组拷贝
在Java中,允许将一个数组变量拷贝给另一个数组变量。这时,两个变量将因用同一个数组:
Int[] myArrays = yourArrays;
myArrays[2] = 5;
此时,yourArrays[2] 的值也是5。
如果希望将一个数组中的所有值都拷贝到另一个数组中去,可以使用System.arraycopy()方法。语法格式为:System.arraycopy(from, fromPos, to, toPos, length),数组to必须有足够的空间来存放拷贝的元素。
示例:
String[] from = new String[] {sun, here, there, where};
String[] to = new String[] {-, -, -, -,-};
System.arraycopy(from, 0, to, 1, 2);
for (String one:to) {
Log.i(to, (one==null)? NULL : one);
}
打印的结果为:
-
sun
here
-
-
4. Java中提供java.util.Arrays类,专门用来操作数组。
例如:想对数值型数组进行排序,可以使用这个类。它提供静态sort方法,这个方法使用了优化的快速排序算法。
static void sort(type [] a) //数值型数组排序
Arrays类还提供下面一些静态方法,方便我们对数组进行操作。
static int binarySearch(type[] a, type v) //使用二分算法查找v
static void fill(type[] a, type v) //将数组的所有元素设置为v
static Boolean equals(type[] a, type[] b) //如果两个数组长度相同,并且下标相同的元素都对应相同,则返回true.
5.不规则数组
Java实际上没有多维数组,只有一维数组。多维数组解释为“数组的数组”。
例如:int [7][6] multiArr = new int[7][6];
是分配了包含7个指针的一个数组,然后,指针数组的每一个元素被分配了一个包含6个数值的数组。
因为可以单独的存取数组的某一行,所以可以很方便的构造一个“不规则”数组,即数组的每一行有不同的长度。例如:存放一个下三角矩阵。
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
创建一个不规则的数组,首先要分配一个具有所含行数的数组。
final int RMAX = 6;
Int[][] odds = new int[RMAX][];
接下来,分配这些行。
for(int i=0; i RMAX; i++) {
odds[i] = new int[i];
}
在分配了数组之后,假定没有超出边界,就可以采用通常的方式访问其中的元素了。
for (int i=0; iodds.length; i++) {
for (int j=0; jodd[i].length; j++) {
//To…do
}
}
6.动态数组
对资源的合理利用是我们一直比较关
您可能关注的文档
- Unit Four 翻译策略.ppt
- UIS1000使用手册.pdf
- VARIAN平板4336 GUIDE.pdf
- VC6环境中LIB与DLL文件的使用.pdf
- visiol foxpro自学教程.pdf
- VLA517技术报告.pdf
- VMware VCP 4.1 培训官方中文PPT 03.pdf
- XFS-WOSA协议学习第一部分.pdf
- vxworks与嵌入式软件开发.pdf
- YHJSM1-M-0909_A HSE培训管理.pdf
- 2023咸阳职业技术学院招聘笔试真题参考答案详解.docx
- 2023四川化工职业技术学院招聘笔试真题及参考答案详解.docx
- 2023哈尔滨职业技术学院招聘笔试真题及参考答案详解.docx
- 2023商洛职业技术学院招聘笔试真题及答案详解1套.docx
- 2023呼伦贝尔职业技术学院招聘笔试真题参考答案详解.docx
- 2023南阳农业职业学院招聘笔试真题参考答案详解.docx
- 2023天津公安警官职业学院招聘笔试真题带答案详解.docx
- 2023年上海电机学院招聘笔试真题参考答案详解.docx
- 2023年四川艺术职业学院招聘笔试真题参考答案详解.docx
- 2023安徽体育运动职业技术学院招聘笔试真题及答案详解一套.docx
文档评论(0)