java数组相关知识

数组的定义
在这里插入图片描述
数组的两种声明方式:
在这里插入图片描述
1.声明数组的时候数组并没有真正的被创建
2.构造一个数组必须指定长度
3.声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关
4.数组也是对象,数组中的元素相当于对象中的属性

数组的初始化
1.默认初始化:整形数组由系统默认初始化为0;浮点型数组由系统默认初始化为0.0;布尔型数组由系统默认初始化为false;引用类型由系统默认初始化为null。

int[] arr= new int[10];//系统默认初始化为0

2.静态初始化:
静态初始化需要在声明后直接初始化

int[] a={1,2,3};//基本数据类型数组静态初始化
Student[] std={new Student(),new Student()};//引用类型数组静态初始化

3.动态初始化:根据索引直接赋值

int[] arr= nrw int[5];//确定数组长度,默认初始化数组
arr[0]=1;
arr[4]=4;//动态初始化数组元素

数组的遍历在这里插入图片描述在这里插入图片描述在这里插入图片描述

//遍历数组
		for(int i=0;i<stu.length;i++){
			System.out.println(stu[i]);//如果未重写toString方法,输出数组的字节码信息
		}
		
		//增强for循环遍历数组stu1(用于读取元素的值),无法操作索引
		for(Students stu2:stu1){
			System.out.println(stu2);
		}
		//增强for循环等价于如下for循环
		for(int i=0;i<stu1.length;i++){
			Students stu2=stu1[i];
			System.out.println(stu2);
		}

数组的拷贝
在这里插入图片描述

/**
 * 测试数组拷贝,
 * @author TheMutents
 *
 */
public class Array_Test_01 {
	public static void main(String args[]){
		String[] s=new String[5];
		String[] ss={"The","Mutents","is","the","writter"};
		
		System.arraycopy(ss,0,s,0,5);//System类下的方法,该方法为静态方法,用来拷贝数组
		
		for(int i=0;i<s.length;i++){
			System.out.println(s[i]+"\t");
		}
	}
}

在这里插入图片描述

import java.util.Arrays;

/**
 * 测试java.util.Array类(操作数组的工具类)
 * 该类包含了排序、排序、填充、打印内容等常见操作
 * @author Lhk
 */
public class Array_Util_Class {
	public static void main(String args[]){
		int [] a={145,151,130,110,160};
		
		System.out.println(Arrays.toString(a));//打印数组的内容,此处toString()方法为Arrays的静态方法,与Object类的toString()方法不同
		Arrays.sort(a);//Arrays类的排序方法
		System.out.println(Arrays.toString(a));
		Arrays.fill(a, 1, 3, 115);//Arrays类的填充方法,填充位置为(1,3-1)
		System.out.println(Arrays.toString(a));
		
		//测试二分法查找
		int[] b={123,221,156,143,178,226};
		Arrays.sort(b);//使用二分法查找前必须先对数组进行排序
		System.out.println(Arrays.binarySearch(b, 156));//查找115,返回115的索引位置
	}
}

多维数组
在这里插入图片描述
多维数组的声明

public class Array_Tow {
	public static void main(String args[]){
		//二维数组的声明,Java中多维数组的声明应该从低维到高维的顺序进行
		int[][] a=new int[3][];//先声明一维部分
		a[0]=new int[2];  //声明二维部分,int类型默认初始化为0
		a[1]=new int[3];
		a[2]=new int[4];
		
		for(int i=0;i<3;i++){
			System.out.println(Arrays.toString(a[i]));//遍历数组a[][]
		}
		
	}
}

内存分析图
在这里插入图片描述
多维数组的静态初始化

//多维数组的静态初始化
		int[][] b={{1,2,3},{4,5},{6,7,8,9}};
		for(int i=0;i<b.length;i++){
	System.out.println(Arrays.toString(b[i]));//遍历数组b[][]

多维数组的动态初始化

//多维数组的动态初始化
		int[][] c=new int[3][];//int[][] c=new int[][3]为非法声明
		c[0]=new int[]{1,2,3};
		c[1]=new int[]{4,5};
		c[2]=new int[]{6,7,8,9};
		for(int i=0;i<c.length;i++){
			System.out.println(Arrays.toString(c[i]));//遍历数组c[][]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

The Mutents

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值