java基础之数组

什么是数组

是存储**同一种数据类型**的的集合,也叫容器;
特点:是数组中每个元素都有索引从0开始;有序
Java的数组是静态的,即当数组被初始化之后,该数组的长度是不可变的

一维数组

数组的定义及赋值方式
① 第一种定义方式, 定义的同时给赋了初始值, 也是第一种赋值方式:
    int[] arr = {1,2,3,4,5,6,7,8,9,10};  其实这是一种连写,本质是是两个步骤:

第一步: int[] arr; //定义或叫声明一个 整数类型的数组变量 arr
第二步:arr = {1,2,3,4,5,6,7,8,9,10}; // 给整数类型的数组变量 arr 赋值, 注意可以这样理解,但是没这种赋值的语法
② 第二种定义方式, 和第一种本质一样,只是写法不一样:

int[] arr = new int[]{20,30,40};    // 可以理解第一种写法是这种写法的简化,省略new int[]关键字

③ 第三种定义方式, 定义就只是定义, 没给赋初始值:

int[] arr = new int[3];   // 定义数组变量的时候没赋值,必须要指定数组的长度

定义好数组变量后, 可以这样给单个单个数组元素赋值, 这是第三种赋值方式:

arr[0] = 11;
arr[1] = 12;
arr[2] = 13;

二维数组

数组的数组---二维数组的本质也是一维数组,只不过是这个一维数组里的每一个元素是又是一个一维数组
定义方式
第一种定义方式
数据类型[][] 数组名 = new 数据类型[包含的一维数组的个数][每个一维数组的长度];
int[][] arr = new int[3][5];

—定义了一个整型的二维数组,其中包含3个一维数组,每个一维数组可以存储5个整数
注意知识点:定义一个一维数组,没有赋初始值的定义方式,必须指定这个数组的长度,但是到了二维数组,里边的元素数组的长度我们在定义的时候可以不明确指定是可以的:

int[][] arr = new int[3][];  ----表示一个包含了三个整型的一维数组的二维数组,里边的充当元素的数值长度是可变的
第二种定义方式
数据类型[][] 数组名 = {{元素},{元素1, 元素2},……};
int[][]  arr  =  {{2,5},{1},{3,2,4},{1,7,5,9}};
二维数组的遍历
二维数组的长度:数组名.length ---每个一维数组:数组名[下标].length
二维数组的遍历---两重for循环
for(int i = 0; i < arr.length; i++){ //遍历二维数组,遍历出来的每一个元素是一个一维数组
	for(int j = 0; j < arr[i].length; j++){ //遍历对应位置上的一维数组
		System.out.println(arr[i][j]);
	}
}

对象数组

在Java中不但可以声明由基本数据类型的数据组成的数组,还可以声明由对象组成的数组; 声明对象数组的方式如: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190608224249967.png)

注意:对象数组==引用数组,它的内存结构很多初学者都会搞错:
在这里插入图片描述
放到数组的元素其实是对象在堆内存中的内存地址,我们常常叫做这个对象的引用:

真正的内存结构应该是:
在这里插入图片描述

下面来看一个例子

package cn.bzu.look.dao;

public class StudentTest {
	private int age;
	private String name;
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	@Override
	public String toString() {
		return "StudentTest [age=" + age + ", name=" + name + "]";
	}
	public StudentTest(int age, String name) {
		super();
		this.age = age;
		this.name = name;
	}
	
	public static void main(String[] args) {
		StudentTest stuArr[] = new StudentTest[5];
		stuArr[0] = new StudentTest(20,"小哈");
		stuArr[1] = new StudentTest(21,"小黑");
		stuArr[2] = new StudentTest(22,"小白");
		stuArr[3] = new StudentTest(23,"大白");
		stuArr[4] = new StudentTest(24,"明明");
		for(StudentTest s: stuArr) {
			System.out.println(s);
		}
		
	}
}

输出结果

StudentTest [age=20, name=小哈]
StudentTest [age=21, name=小黑]
StudentTest [age=22, name=小白]
StudentTest [age=23, name=大白]
StudentTest [age=24, name=明明]

数组的常用方法

https://blog.csdn.net/weixin_43610698/article/details/91777168

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值