一直记不住--(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(数组名): 升序排序,返回排序后的数组
数组排序:Arrays的sort方法
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