现在已经很少用到数组这一类型了,大多是后我们都会选择使用List。相对于List,数据在效率上有一定的优势,但是灵活性不够。下面总结一些数组的基本知识。
1、数组和其他类的容器之间的区别有三方面:效率、类型和保存基本类型的能力,数组能够保存固定长度的数据。
2、[]是访问数组对象的唯一方法,只读成员length是数组对象的一部分,标识数组的大小,并不是实际保存的元素个数。
3、数组与泛型不能很好的结合,不可以实例化具有参数化类型的数组:Peel<Bandana>[] peels=new Peel<Banana>[10]//不合法的
4、数组的使用功能,主要包括数组一些常用的方法
(1)Arrays.fill():用同一个值填充数组的各个位置,而针对对象而言,就是复制同一个引用进行填充。有两个方法:通常产生相同的一组数据,用来测试
Arrays.fill(array,value);array 为一个数组变量,value是一个值,该值的类型为array数组元素的类型,该方法将给array数组的每一个元素赋值value;
Arrays.fill(array,startIndex,endIndex,value);第一个与第四个参数与前一用法相同,startIndex与endIndex为整数类型,并且0<startIndex<endIndex<array.length;该方法为下标大于startindex并且小于endindex的array数组元素赋值value;
(2)复制数组,用System.arraycopy()这种方法比用for循环复制要快得多。java API中由如下描述:arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Copies an array from the specified source array, beginning at the specified position, to the specified position of the destination array.
方法中的四个参数:源数组、标识从源数组什么位置开始复制的偏移量、目标数组、标识从目标数组的什么位置开始复制的偏移量、以及要复制的元素个数。数组的越界将会导致异常
(3)数组的比较:Arrays提供了equals()方法,用来比较整个数组。数组相等的条件:元素个数相等,对应位置的元素也相等。
注意一下两种方式的不同:array1.equals(array2);
Arrays.equals(array1, array2);
array1.equals(array2) is the same as array1 == array2, i.e. is it the same array. As @alf points out it's not what most people expect.
Arrays.equals(array1, array2) compares the contents of the arrays.
(4)数组元素的比较:实现java.lang.Comparable接口,使得类具有天生的比较能力。
之后就可以用Arrays.sort()对数组进行排序了。
(5)在已排序的数组中查找:Arrays.binarySearch(),如果找到了目标,返回值大于或等于0.否则它产生负返回值,标识若要保持数组的排序状态比目标元素应该插入的位置,计算方式为 : -(插入点)-1;
其中,插入点是指第一个大于查找对象的元素在数组中的位置,如果数组中所有的元素都小于要查找的对象,插入点就等于a.size().
分享到:
相关推荐
NULL 博文链接:https://yuan.iteye.com/blog/301491
javascript从入门到跑路—–小文的js学习笔记(1)———script、alert、document。write() 和 console.log 标签 … … javascript从入门到跑路—–小文的js学习笔记目录 ** 含义: 使用单独的变量名来存储一系列的...
java IO流学习笔记——(2)文件字符流&字节数组流 文件字符流FileReader&FileWriter FileReader :通过字符的方式读取文件,仅适合字符文件 FileWriter :通过字节的方式写出或追加数据到文件中,仅适合字符文件 部分...
索引:是使得对象可以像数组一样被索引的成员 结构:一种值类型,几个数据组成的数据结构。向方法传递结构时,是通过传值方式传递的,结构实例化可以不用new,结构可以声明构造函数,但必须带参数,且声明的构造...
《java jdk 7学习笔记》适合java的初中级读者,以及广大java应用开发人员。 作译者 林信良(网名:良葛格) 学历:台湾大学电机工程学系 经历:台湾升阳教育训练技术顾问、专业讲师,oracle授权训练中心讲师 ...
我的文章《Java学习笔记第13期——Java数组操作Part1》配套笔记文件文章地址:https://blog.csdn.net/lbwnbnbnbn/article/details/115418700
我的博文《Java学习笔记第14期——Java数组操作Part2》的配套文件 博文链接:https://blog.csdn.net/lbwnbnbnbn/article/details/115582676
000000_【课程介绍 —— 写在前面的话】_Java学习概述笔记.pdf 010101_【第1章:JAVA概述及开发环境搭建】_JAVA发展概述笔记.pdf 010102_【第1章:JAVA概述及开发环境搭建】_Java开发环境搭建笔记.pdf 010201_【第2...
c#学习笔记(1) 51099在线学习网发布 文章来源:网络收集 发布时间:2006-05-25 字体: [大 中 小] 51099在线学习网 http://www.51099.com 1, 结构(struct) 与 类(class) [attributes] [modifiers] struct ...
编程笔记 学习、总结、记录 ! —— since 2018/20 :bar_chart: :hot_beverage: :mobile_phone: :laptop: :floppy_disk: :pager: :globe_with_meridians: :file_cabinet: :books: :bar_chart: 算法和数据结构 排序...
oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...