专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java超级基础之数组(java中数组的常用方法)

temp10 2024-09-25 21:27:23 java教程 5 ℃ 0 评论

数组

数组:相同数据类型的组合 (数组内所有数据的类型都是相同的)

Java超级基础之数组(java中数组的常用方法)

一.数组的声明和初始化

声明:int[ ] a; [ ](数组)

初始化:1.静态的初始化:静态的初始化只能在声明时使用 int [] a={1,2,3};

2.动态的初始化: 第1种:直接定义一个长度a =new int[3];

第2种:直接赋值 a=new int[]{1,2,3};

注:只要有关键字new就是动态

二.数组成员的访问

1.数组的每个元素都有自己的下标,下标从0开始,数组可以通过.length来获取数组的长度

数组下标的范围(0~length-1) (底层就是有char类型数组实现的)

例如: int[ ] a={1,2,3};

System.out.println(a.length);

结果: 3

2.通过数组名[index(下标)]来访问数组的元素

例如: int[ ] a={1,2,3};

//对应下标0,1,2

System.out.println(a[0]);

结果: 1

a[1]=10; (将数组a中下标为1的数据赋值成10)

3.数组成员自动初始化为'0'值的现象 (int型 0/double型 0.0/boolean型false/

String型(引用类型)null/char型'口'\u0000)

例如: int[ ] a=new int[5];

System.out.println(Arrays.toString(a));

结果: [0,0,0,0,0,]

4.如果越界,会出现ArrayIndexOutOfBoundsException 数组下标越界异常

三.数组内容的输出

Arrays.toString (数组名): 把数组X用文本描述的形式显示出来

例如: int[ ] a={1,2,3};

System.out.println(Arrays.toString(b));

结果:[1,2,3]

四.数组的复制:1.直接赋值(缺陷:将两个数组关联,改变其中一个的同时,另一个也会改变)

例如: int [ ] a ={1,2,3};

int [ ] b =a;

system.out.println(Arrays.toString(a))

system.out.println(Arrays.toString(b))

b[1]=10;

system.out.println(Arrays.toString(a))

system.out.println(Arrays.toString(b))

结果: [1, 2, 3]

[1, 2, 3]

[1, 10, 3]

[1, 10, 3] //改变b的同时a也被改变了

2.使用for循环逐一赋值

例如: int [ ] a ={1,2,3,4,5};

Int [ ] b =new int[a.length]; //使数组b的长度与a保持一致

For(int I=0;i<a.length-1;i++){

b[i]=a[i];

}

System.out.println(Arrays.toString(b));

b[1]=10;

System.out.println(Arrays.toString(b));

System.out.println(Arrays.toString(a));

结果: [1, 2, 3, 4]

[1, 10, 3, 4]

[1, 2, 3, 4]

3.使用系统类里面的方法实现数组的复制

system.arraycopy (src, srcPos, dest, destPos, length)

src,需要复制的数组 srcPos复制开始的下标位置

dest:目标数组(复制给谁) destPos:目标数组开始接受的位置

length:复制多少长度


例如: int [ ] a ={1,2,3,4,5};

Int [ ] b =new int[a.length];

System.arraycopy(a.0.b.0.a.length);

注:该方法需先定义数组长度与被复制数组一致

Arrays.copyOf(original, newLength)

Original:需要复制的数组 newLength:新数组的长度

例如: int [ ] a={1,2,3};

Int [ ] b= Arrays.copyOf(a,a.length)

制作arraycopy方法:

public static int[ ] arraycopy(int [ ]src,int srcPos,int [ ] dest,int destPos,int length){

for(int i=srcPos;i<=srcPos+length;i++){

dest[destPos++]=src[i];

}

return dest;

}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表