一直记不住的--数组

时间:2022-12-27 18:46:18

一直记不住--(T_T)  我也挺折服于我的“好记性~~” 

一、数组的创建

声明数组: 

1.元素类型[] 数组名 ;(可同时声明多个数组:int[] arr1,arr2...;)
2.元素类型  数组名[] ;
声明数组仅仅是给出了数组名字和元素数据类型,并没有为其分配内存空间。

分配内存空间的语法如下:

数组名 =new 元素类型[元素个数]
(元素类型 数组名[] = new 元素类型[元素个数] 声明数组并分配内存)
使用new关键字为数组分配内存时,数组中各元素的初始化值为0。

初始化数组:

元素类型[] 数组名=new 元素类型[]{元素0,元素1,元素2...};
元素类型[] 数组名={元素0,元素1,元素2...}

二、数组的基本操作:

每个数组都有一个属性length(不带括号,不是方法)。
数组名.length    得到数组的长度,即有多少个元素。

填充替换数组元素:

将指定的value值分配给数组的(2.指定范围中的)每个元素
1.fill(元素类型[] 数组名,类型 value)
2.fill(元素类型[] 数组名,类型 fromIndex,类型 toIndex,类型 value) 
           fromIndex:使用指定值填充的第一个元素索引
                toIndex:使用指定值填充的最后一个元素索引(不包括)

数组复制:

将指定数组的指定长度复制到一个新的数组中,返回复制后的数组
System.arraycopy(源数组,类型 fromIndex,类型 toIndex)
复制数组指定长度,返回复制后的数组
Arrays.copyOf(源数组,int 新数组长度)

数组排序:

Arrays.sort(数组名): 升序排序,返回排序后的数组

数组排序Arrayssort方法

int[] ary = {123,3464,878,87,7};

Arrays.sort(ary);    对于数字,将需要排序的数组参数传入直接从小到大排序

 

Arrays.sort(ary,new Comparetor<Integer>(){  改为从大到小排序写法。(自定义排序规则)

public int compareTo(Integer a1,Integer a2){

return a2-a1;  通过返回值>0<0=0结果来判断两数值大小进而排序

}

})

集合排序:

ArrayList<Integer>list = {123,3464,878,87,7};

Collections.sort(list,new Comparetor<Integer>(){

Public int compareTo(Integer a1,Integer a2){

return a1-a2;  小到大a1-a2;大到小:a2-a1;

}

});


比较两个数组是否相等(元素):

Arrays.equals(A,B);

查询数组:

对数组中的元素进行快速查找(二分搜索法),返回要搜索元素的索引,没有返回-1
Arrays.binarySearch(要检索的数组,要搜索的值)
在指定范围内检索某个元素,在,返回索引,不在,返回-1
Arrays.binarySearch(要检索的数组,fromIndex,toIndex,要搜索的值)

指定范围大于或等于数组长会有ArrayIndexOutOfBoundsException

另外:
数组作为命令行参数
在java程序的main方法中带有一个String args[]参数,这个参数就是main方法接收的用户输入的参数列表,即命令行参数。
例子:

public class Demo{
public static void mian(String args[]){
System.out.println("用户输入的参数如下:")
for(a,args)
System.out.println(a)
}
}
先执行javac Demo.java
在命令行输入如下执行程序:
java Demo name password security_code
得到的结果为:
name
password
security_code