java学习笔记之二维数组 2019/4/21号

java学习笔记之二维数组 2019/4/21号

定义格式

第一种定义方法(动态初始化)

数据类型 数组名 [ ][ ] = new 数据类型[m][n]
数据类型 [ ][ ] 数组名 = new 数据类型[m][n]
数据类型 [ ] 数组名 [ ] = new 数据类型[m][n]

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}};

例题

例题1

某公司按照季度和月份统计的数据如下:单位(万元)
第一季度:22,66,44
第二季度:77,33,88
第三季度:25,45,65
第四季度:11,66,99

public class Test01 {
	public static void main(String[] args) {
		int arr[][]= {
				{22,66,44,56},
				{77,33,88},
				{25,45,65},
				{11,66,99}
		};
		int sum[]=new int[arr.length];//求每一个季度的
		int con=0;
		for (int i=0;i<arr.length;i++)
		{
			for(int j=0;j<arr[i].length;j++)
			{
			con=arr[i][j]+con;
			}
			sum[i]=con;
			con=0;//每次置它为0,以便下一次使用
		}
		for (int i=0;i<arr.length;i++)
		{
			System.out.printf("第%d季度的总和为:%d",i+1,sum[i]);
			System.out.println();
		}
		for(int i=0;i<arr.length;i++)
			con=con+sum[i];
		System.out.println("所有总和为:"+con);
	}
}

结果:
在这里插入图片描述

例题2

实现矩阵的加法和打印,通过方法调用

public class Test02 {

	public static void PrintArr(int a[][])
	{
		for(int i=0;i<a.length;i++)
		{
			for(int j=0;j<a[i].length;j++)
				System.out.print(a[i][j]+"\t");
			System.out.println();
		}
	}
	
	public static int[][] add(int a[][],int b[][])
	{
		int [][]c=new int[a.length][a.length];
		for(int i=0;i<a.length;i++)
		{
			for(int j=0;j<a[i].length;j++)
				c[i][j]=a[i][j]+b[i][j];
		}
		return c;
	}
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		int [][]a= {
				{1,2,4},
				{2,4,5},
				{5,2,5}
		};
		PrintArr(a);
		PrintArr(add(a,a));
	}
}

结果:
在这里插入图片描述

例题3

在这里插入图片描述

import java.util.Arrays;
import java.util.Scanner;

public class Test03 {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int T=in.nextInt();
		String s[]=new String[T];//定义一维数组s接收用户的输入
		char[][] s2=new char[T][];//定义二维数组s2,用于接收s中的字符串转换成字符数组之后元素
		for (int i=0;i<T;i++)
		{
			s[i]=in.next();
		}
		for (int i=0;i<T;i++)
		{
			s2[i]=s[i].toCharArray();//将s数组的字符串装换成字符数组,存到s2中
		}
		for (int i=0;i<T;i++)
		{
			for(int j=0;j<s[i].length();j=j+2)//输出
				System.out.print(s2[i][j]);
			System.out.println();
		}
		}
}

结果:
在这里插入图片描述

例题4

游戏规则:循环报数游戏,有n个人,每一个人编号从1开始,依次编号到n。从1到3报数,报3的退出游戏,得出最后获胜人的编号。

import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
	//游戏规则:循环报数游戏,有n个人,每一个人编号从1开始,依次编号到n。从1到3报数,报3的退出游戏,得出最后获胜人的编号。
	Scanner in=new Scanner(System.in);
	int T=in.nextInt();
	int []arr=new int[T];
	for(int i=0;i<T;i++)
	{
		arr[i]= 1;
	}
	int count=1;
	int i=0;
	while(i<T)
	{
		if(arr[i]==1)
		{
			if(count%3==0)
			{
				arr[i]=-1;
				System.out.println("出队顺序是:"+(i+1));
			}
			count++;
		}
		i++;
		if(i>=T)
			i=0;
	}
}
}

数组常用方法

常用的10个方法

猜你喜欢

转载自blog.csdn.net/qq_42373946/article/details/89434473
今日推荐