17.03.04 数组

来源:互联网 发布:pkpm结构计算软件 编辑:程序博客网 时间:2024/05/29 12:51

数组与其它容器的区别有三个方面:

效率——简单的线性序列,高效率存储和随机访问

类型——数组在编译时,可以自动检测要插入的数据的类型与定义的是否相符

保存基本数据类型——数组可以持有基本数据类型(泛型也可以)

一、创建数组

         格式:一维数组:数据类型[]数组名字    或者    数据类型  数组名字[]

                     二维数组:数据类型[][] 数组名字    或者    数据类型  数组名字[][]

         (推荐使用“数据类型[] 数组名字”格式,更符合java面向对象的特性)

如:int [] array1   或  int array1 []

 

二、为数组分配内存

         数组声明之后,必须使用new为其分配内存

         格式:数据类型[] 数组名字 =new 数据类型[元素个数]

如:int [] array1=newint [5];

 

二维数组可分别分配内存空间

如:

int [][]array1=new int [2][];

int[0]=new int[5];

int [1] = newint [4];

 

三、数组初始化

         数组初始化有两种方式:

         int [] array1=new int [5]{1,2,3,4,5}  或

         int [] array1={1,2,3,4,5}

 

四、数组基本操作

 

         4.1 遍历数组

                   使用for语句或者foreach语句

 

         4.2 填充替换数组元素

                  (1)Arrays.fill(数组名,填充数值)

                   该方法为数组所有元素,填充同一个值

 

                   (2)Arrays.fill(数组名,起始索引,终止索引,填充数值)

                   该方法为数组指定范围  [起始,终止) 填充数值

 

         4.3 数组排序

                   Arrays.sort(数组名)

                   返回值为排序后的数组(从小到大排序)

 

         4.4复制数组

                   (1)Arrays.copyOf(原数组名,新数组长度)

如果新数组长于旧数组,多余的用0或null填充;如果新数组小于旧数组,则从0索引开始截取长度。

 

(2)Arrays.copyOfRange(原数组名,起始索引,终止索引)

复制指定范围的数组

 

(3)System.arraycopy(源数组,源数组复制起始点,目标数组,目标数组插入起始点,复制元素个数)

 

注意:

对象数组是浅复制,只是复制了对象引用;另外,arraycopy()方法两个数组必须具有相同的确切类型

 

         4.5获取数组长度

                   格式:数组名.length

 

         4.6数组查询

                   格式一:Arrays.binarySearch(数组名,要查找的值)

                   格式二:Arrays.binarySearch(数组名,起始索引,终止索引,要查找的值)

                   如果数组中存在该值,则返回该值的索引,否则放回值为,该数要插入到该数组中的顺序的负数,如假设在[0,3)之间查找某数,不存在,则该数将插入3的索引位置,顺序为4,返回值则为-4.

                   调用此方法之前,必须用sort对数组进行排序,否则,如果数组中有多个该值,不能保证找到的是哪个值。

 

         4.6数组与字符串的相互转换

                   1.数组转为字符串

                   方法一:字符数组可直接通过 new String(char[])、

                   方法二:构建字符串生成器(StringBuilder),通过foreach语句将数组元素加入字符串生成器,最后用toString()方法即可。

                   方法三;Arryas.toString(数组名)    输出结果为[str1,str2,str3……],结果用处不大。

 

                   2.字符串转为字符数组

                   方法一:str.split(“”)分割获得

                   方法二:str.toCharArray()

                   方法三:str.getChar(起点索引,终点索引,目标数组,目标起始索引)

 

         4.7 Arrays.toString()与Arrays.deepToString()的区别

                   后者用于多维数组

         4.8 数组比较,Arrays.equals()与Arrays.deepEquals()方法

                   (1)数组比较

                   (2)数组元素之间的比较

 

思考:

1.将数组中指定值,替换为另外一个值?

0 0
原创粉丝点击