二维数组 arr[ 2 ] [ 3 ]的元素是一维数组,如果访问第2个数组的第2个元素是arr[2][2]
语法:类型[ ] [ ]数组名 = new 类型[ 大小] [大小 ]
语法: 类型 数组名 [ ] [ ] ; 数组名 = new 类型[大小 ] [大小 ]
语法:类型 数组名 [ ] [ ] = { {1,2,3} , {4,5,6,7,8} , {2,3,1} }
/*
打印
00000
00100
01240
14656
*/
public class text {
public static void main(String[] args) {
int [][]arr = {{0,0,0,0,0},{0,0,1,0,0},{0,1,2,4,0},{1,4,6,5,6}};
for(int i = 0;i < arr.length; i++) { //arr.length指的是二维数组元素的个数
for(int k = 0 ; k < arr[i].length ; k++) {//arr[i].length指的是二维数组元素的个数
System.out.print(arr[i][k]+"\t");
}
System.out.println();
}
}
}
打印m数组 1
2 2
3 3 3
public class text {
public static void main(String[] args) {
int m[][] = { {1},{2,2},{3,3,3} };
for(int i = 0; i<m.length; i++ ) { //遍历二维数组中的3个数组
for(int k = 0; k <m[i].length ; k++) {
System.out.print(m[i][k]+"\t");//遍历每个数组的每个元素
}
System.out.println();
}
}
}
二维数组打印乘法口诀表
public class text {
public static void main(String[] args) {
int m[][] = new int [9][] ; //列数不确定,可以不写
for(int i = 0; i<m.length; i++ ) { //遍历二维数组中的3个数组
m[i] = new int [ i+1]; //循环开启二维数组中的每个一维数组,而且 i+1 影响着下面 m[i].length的长度
for(int k = 0; k <m[i].length ; k++) {
m[i][k]= i + 1;
System.out.print(m[i][k]+"*"+(k+1)+"="+m[i][k]*(k+1)+"\t");//遍历每个数组的每个元素
}
System.out.println();
}
}
}
打印十行杨辉三角
public class text {
public static void main(String[] args) {
int m[][] = new int[10][];//定义一个十行的二维数组
for(int i = 0; i < m.length;i++ ) {
m[i]= new int [i +1]; // 开辟m[0],m[1]........m[9]不同的空间
for(int k =0; k < m[i].length; k++) { //遍历二元数组中每一个一元数组内包含的全部元素
if( (k == 0) || (k == m[i].length -1 )) {
m[i][k]=1;
}
else
{
m[i][k]= m[i-1][k-1]+m[i-1][k];
}
}
}
for(int i = 0; i < m.length;i++ ) {
for( int k =0; k < m[i].length; k++) {
System.out.print(m[i][k]+"\t");
}
System.out.println();
}
}
}
一个数组{10,12,45,90}是升序,要求插入一个数后,还是升序
public class text {
public static void main(String[] args) {
int arr[] = {10,12,45,90};
int insertNum = 23;
int index = -1;// index就是要插入的位置
//**定位**
//设一个变量index用于接收下标i,依次遍历 插入的数inserNum 和 原数组的元素arr[i] 进行比较,
// 若 插入数insertNum小,则用index获取当前元素下标i; 否则将接收下标的index赋予最大下标arr[arr.length]
for(int i= 0;i<arr.length;i++) {
if( insertNum <= arr[i]) {
index = i;
break;
}
}
if(index == -1) {
index = arr.length;
}
System.out.println("定位index的位置是 "+index);
//**扩容**
//创建一个新的数组,并将原先的数组依次赋值给新数组
int arr_new[] = new int [arr.length+1];
for (int i = 0,j=0; i < arr_new.length; i++) {
if( i != index ) {
arr_new[i] = arr[j];
j++;
}else {
arr_new[i] = insertNum;
}
}
// 让arr指向arr_new,回收原来arr的空间
arr = arr_new;
//遍历输出
System.out.println("-----添加过后的排序-----");
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+"\t");
}
}
}
彩票实现
import java.util.Random;
import java.util.Scanner;
public class text {
//创建一个函数,用于换行
public static void nt () {
System.out.println("");
System.out.println("");
System.out.println("");
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random rand = new Random();
//用于随机每个红蓝球
int redArr[] = new int[6];
int blueArr[] = new int[1];
//用于接收用户每个红蓝球
int insertRed[] = new int[6];
int insertBlue[] = new int[1];
//随机红蓝号码
for(int i = 0; i<redArr.length; i++) {
redArr[i] = rand.nextInt(33 - 1 + 1) + 1;
}
blueArr[0] = rand.nextInt(16 - 1 + 1) + 1;
//匹配红蓝中奖号码
int index1 = 0; //用于定义红球中的次数
int index2 = 0;//用于定义蓝球中的次数
int num =1;
for(int i = 0; i<redArr.length; i++) {
System.out.println("请输入第"+num+"红色球号码[1-33]");
insertRed[i] = scanner.nextInt();
num++;
for(int j =0 ; j<redArr.length; j++) {
if(insertRed[i] == redArr[j] ) {
index1++;
}
}
}
System.out.println("请输入1个蓝色球号码[1-16]");
insertBlue[0] = scanner.nextInt();
if(insertBlue[0] == blueArr[0] ) {
index2++;
}
nt ();
if( index1== 6 && index2 == 1 ) {
System.out.println("天哪,欧皇降临,获得一等奖1000万元");
}
else if( index1== 6 ) {
System.out.println("运气爆棚,获得二等奖500万元");
}
else if( index1== 5 && index2 == 1 ) {
System.out.println("不错呦,获得三等奖3000元");
}
else if( index1== 5 || (index1==4 && index2 == 1) ) {
System.out.println("嘿嘿,获得四等奖200元");
}
else if( index1== 4 || (index1==3 && index2 == 1) ) {
System.out.println("哦吼,获得五等奖10元");
}
else if( index2 == 1 ) {
System.out.println("不赖不赖,获得六等奖5元");
}
else {
System.out.println("谢谢惠顾,感谢你为民生做出贡献");
}
nt();
System.out.println("是否查看本次福利彩票中奖号码(y/n)");
char x = scanner.next().charAt(0);
if( x == 'y') {
//公布最终获奖号码。
System.out.println("****本次彩票中奖号码为****");
nt();
System.out.println("红球分别是");
for(int i = 0; i<redArr.length; i++) {
System.out.print(redArr[i]+"\t");
}
nt();
System.out.println("蓝球分别是");
for(int i = 0; i<blueArr.length; i++) {
System.out.print(blueArr[i]+"\t");
}
nt();
}
}
}
定义方式
一维: int arr [ ] = new int [x ];
二维: int arr [ ][ ] = new int [ x][ y];
二位数组是由多个一位数组组成的,它的各个一位数组的长度可以相同,也可以不相同
arr [ ][ ] = { {1,23},{43,65,76},{22,56…87.33,24} }