1、二维数组其实是一个特殊的一维数组,特殊在这个二维数组中每一个元素是一个一维数组
2、就是一维数组里面都是一样的元素,二维数组就是把元素换成了一维数组
3、实际开发中,使用最多的就是一维数组,二维数组很少使用,三维数组几乎不用
4、二维数组静态初始化
int[][] a={ {1,2},{3,4},{5,6}};
5、把二维数组看成矩阵
6、关于二维数组中元素的读和改
a[0][0]表示第1个一维数组中的第1个元素
a[1][100]表示第2个一维数组中的第101个元素
7、二维数组的遍历
package com.lbj.javase.array;
/**
* @author LBJ
* @version V1.0
* @Package com.lbj.javase.array
* @date 2021/2/18 23:00
* @Copyright 公司
*/
public class ArrayTest09 {
public static void main(String[] args) {
int[][] a={
{1,2},{3,4},{5,6}};
System.out.println(a.length);
System.out.println(a[0].length);
System.out.println("=======================");
//遍历循环二维数组
for (int i = 0; i <a.length ; i++) {
for (int j = 0; j <a[i].length; j++) {
System.out.println(a[i][j]);
}
}
}
}
8、动态初始化二维数组
int[][] array=new int[3][4];
动态初始化了一个3行4列的二维数组
9、String数据类型
String s=new String("123");
等同于
String s="123";
因为String类型在java中受到优待
演示例子加强记忆:
package com.lbj.javase.array;
/**
练习
编写程序,使用一维数组,模拟栈数据结构
要求:
1、这个栈可以存储java中任何引用类型的数据
2、在栈中提供push方法模拟压栈(栈满了,要有提示信息)
3、在栈中提供pop方法模拟弹栈(栈空了,也要有提示信息)
4、编写测试程序,new栈对象,调用push pop 方法来模拟弹栈压栈的动作
5、假设栈的默认初始化容量是10(请注意无参构造方法的编写方式)
*/
public class ArrayTest10 {
private Object[] elements;
//需要有一个栈帧,这个栈帧,永远指向栈顶部元素[0]
//注意:最初的栈是空的,一个元素也没有
//那么这个默认的初始值是多少?
//如果index采用0,表示栈帧指向顶部元素的上方。相当于空的指向
//如果index采用-1,表示栈帧指向顶部元素
private int index;
public ArrayTest10(){
//假设栈的默认容量是10,那么一维数组动态初始化的固定长度就等于10
//因为实例变量初始化的时候是构造方法在执行的时候,所以构造方法中初始化和外边初始化效果是