1.数组定义及初始化
数组是指相同类型元素的集合
类型 [] 数组名=new 类型[数组长度]
类型 [] 数组名={...}
类型 [] 数组名-new 类型{...}
注意:在使用关键字new 定义数组长度时,若不进行赋值,则默认为0的该类型定义。
2.获取数组的长度
数组名.length
3.引用类型
数组实际是一个引用数据类型,而引用类型是一个线索,用来指向堆中存放的数据
java 中所有涉及传参时均为传值传参,即形参的值不会改变实参的值。当然引用类型传参也为传值
java中四个变量及其存储位置
实参 栈区
形参 栈区
局部变量 堆区
静态属性 方法区
int [] a={1,2,3,4,5};
int [] b=a;//将b也指向a的线索
b=new int []{11,12};//修改了b的线索
//a中数组元素仍然为1,2,3,4,5
4.练习题(查找指定元素及二分法)
public class array{
public static void main (String[]args){
int [] a={1,2,3,4,5};
int x=indexof(a,3);
System.out.println(x);
}
public static int indexof(int []a,int v){
for(int i=0;i<a.length;i++){
if(a[i]==v)
return i;
}
return -1;
}
}//查找指定元素
public static int binary(int [] a,int v){
int left=0;
int right=a.length-1;
while(left<=right)
{
int mid=(left+right)/2;
if(a[mid]==v)
{
return mid;
}
else if(a[mid]>v)
{
rigth=mid-1;
}
else
left=mid+1;
}
return -1;
}//区间为左闭右闭型
public static int binary(int [] a,int v){
int left=0;
int right=a.length;
while(left<right)
{
int mid=(left+right)/2;
if(a[mid]==v)
{
return mid;
}
else if(a[mid]>v)
{
rigth=mid;
}
else
left=mid+1;
}
return -1;
}//区间为左闭右开型
利用Arrays包中的方法复制数组内容
import java.util.Arrays;
public class LianXi{
public static void main (String[]args){
int [] a={1,2,3,4,5};
System.out.println(Arrays.toString(Arrays.copyOf(a,5)));
}
public static int[] copyOf(int [] a,int newlength){
int [] b=new int [newlength];
int length=a.length<=newlength?a.length:newlength;
for(int i=0;i<length;i++){
b[i]=a[i];
}
return b;
}//复制数组中元素
}