/*二维数组:就是元素为一维数组的一个数组。格式1:数据类型[][] 数组名 = new 数据类型[m][n];m:表示这个二维数组有多少个一维数组。n:表示每一个一维数组的元素有多少个。注意:A:以下格式也可以表示二维数组a:数据类型 数组名[][] = new 数据类型[m][n];b:数据类型[] 数组名[] = new 数据类型[m][n];B:注意下面定义的区别int x;int y;int x,y;int[] x;int[] y[];int[] x,y[];
*/
class Array2Demo {public static void main(String[] args) {//定义一个二维数组int[][] arr = new int[3][2];//定义了一个二维数组arr//这个二维数组有3个一维数组的元素//每一个一维数组有2个元素//输出二维数组名称System.out.println(arr); //地址值 [[I@175078b//输出二维数组的第一个元素一维数组的名称System.out.println(arr[0]); //地址值  [I@42552cSystem.out.println(arr[1]); //地址值 [I@e5bbd6System.out.println(arr[2]); //地址值 [I@8ee016//输出二维数组的元素System.out.println(arr[0][0]); //0System.out.println(arr[0][1]); //0}
}
/*格式2:数据类型[][] 数组名 = new 数据类型[m][];m:表示这个二维数组有多少个一维数组。列数没有给出,可以动态的给。这一次是一个变化的列数。
*/
class Array2Demo2 {public static void main(String[] args) {//定义数组int[][] arr = new int[3][];System.out.println(arr);   //[[I@175078bSystem.out.println(arr[0]); //nullSystem.out.println(arr[1]); //nullSystem.out.println(arr[2]); //null//动态的为每一个一维数组分配空间arr[0] = new int[2];arr[1] = new int[3];arr[2] = new int[1];System.out.println(arr[0]); //[I@42552cSystem.out.println(arr[1]); //[I@e5bbd6System.out.println(arr[2]); //[I@8ee016System.out.println(arr[0][0]); //0System.out.println(arr[0][1]); //0//ArrayIndexOutOfBoundsException//System.out.println(arr[0][2]); //错误arr[1][0] = 100;arr[1][2] = 200;}
}
/*格式3:基本格式:数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2...},{元素1,元素2...},{元素1,元素2...}};简化版格式:数据类型[][] 数组名 = {{元素1,元素2...},{元素1,元素2...},{元素1,元素2...}};举例:int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};int[][] arr = {{1,2,3},{4,5},{6}};
*/
class Array2Demo3 {public static void main(String[] args) {//定义数组int[][] arr = {{1,2,3},{4,5},{6}};System.out.println(arr);System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);System.out.println(arr[0][0]); //1System.out.println(arr[1][0]); //4System.out.println(arr[2][0]); //6System.out.println(arr[0][1]); //2System.out.println(arr[1][1]); //5//越界System.out.println(arr[2][1]); //错误}
}
/*需求:二维数组遍历外循环控制的是二维数组的长度,其实就是一维数组的个数。内循环控制的是一维数组的长度。
*/
class Array2Test {public static void main(String[] args) {//定义一个二维数组int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};//请问谁代表{1,2,3}//arr[0]就是第一个数组//arr[0] = {1,2,3};for(int x=0; x<arr[0].length; x++) {System.out.println(arr[0][x]);}System.out.println("--------------");for(int x=0; x<arr[1].length; x++) {System.out.println(arr[1][x]);}System.out.println("--------------");for(int x=0; x<arr[2].length; x++) {System.out.println(arr[2][x]);}System.out.println("--------------");//用循环改进for(int x=0; x<3; x++) {for(int y=0; y<arr[x].length; y++) {System.out.print(arr[x][y]+" ");}System.out.println();}System.out.println("--------------");//这个时候,注意了,3是我们根据上面的代码得出来的//但是,它不能针对任何的数组都可以这样//所以,我们应该想办法改进//其实,外面的这个循环的长度就是二维数组的长度for(int x=0; x<arr.length; x++) {for(int y=0; y<arr[x].length; y++) {System.out.print(arr[x][y]+" ");}System.out.println();}System.out.println("--------------");//用方法改进//调用方法printArray2(arr);System.out.println("--------------");//我们再来一个列数是变化的int[][] arr2 = {{1,2,3},{4,5},{6}};printArray2(arr2);}/*需求:遍历二维数组两个明确:返回值类型:void参数列表:int[][] arr*/public static void printArray2(int[][] arr) {for(int x=0; x<arr.length; x++) {for(int y=0; y<arr[x].length; y++) {System.out.print(arr[x][y]+" ");}System.out.println();}}
}
/*公司年销售额求和某公司按照季度和月份统计的数据如下:单位(万元)第一季度:22,66,44第二季度:77,33,88第三季度:25,45,65第四季度:11,66,99分析:A:把题目的数据用二维数组来表示int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};B:如何求和呢?求和其实就是获取到每一个元素,然后累加即可。C:定义一个求和变量sum,初始化值是0。D:通过遍历就可以得到每一个二维数组的元素。E:把元素累加即可。F:最后输出sum,就是结果。
*/
class Array2Test2 {public static void main(String[] args) {//把题目的数据用二维数组来表示int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};//定义一个求和变量sum,初始化值是0。int sum = 0;//通过遍历就可以得到每一个二维数组的元素。for(int x=0; x<arr.length; x++) {for(int y=0; y<arr[x].length; y++) {//把元素累加即可。sum += arr[x][y];}}//最后输出sum,就是结果。System.out.println("一年的销售额为:"+sum+"万元");}
}
/*需求:打印杨辉三角形(行数可以键盘录入)11 1    1 2 11 3 3 11 4 6 4 1 1 5 10 10 5 1分析:看这种图像的规律A:任何一行的第一列和最后一列都是1B:从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。步骤:A:首先定义一个二维数组。行数如果是n,我们把列数也先定义为n。这个n的数据来自于键盘录入。B:给这个二维数组任何一行的第一列和最后一列赋值为1C:按照规律给其他元素赋值从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。D:遍历这个二维数组。
*/
import java.util.Scanner;class Array2Test3 {public static void main(String[] args) {//创建键盘录入对象Scanner sc = new Scanner(System.in);//这个n的数据来自于键盘录入。System.out.println("请输入一个数据:");int n = sc.nextInt();//定义二维数组int[][] arr = new int[n][n];//给这个二维数组任何一行的第一列和最后一列赋值为1for(int x=0; x<arr.length; x++) {arr[x][0] = 1; //任何一行第1列arr[x][x] = 1; //任何一行的最后1列}//按照规律给其他元素赋值//从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。for(int x=2; x<arr.length; x++) {//这里如果y<=x是有个小问题的,就是最后一列的问题//所以这里要减去1//并且y也应该从1开始,因为第一列也是有值了for(int y=1; y<=x-1; y++) {//每一个数据是它上一行的前一列和它上一行的本列之和。arr[x][y] = arr[x-1][y-1] + arr[x-1][y];}}//遍历这个二维数组。/*for(int x=0; x<arr.length; x++) {for(int y=0; y<arr[x].length; y++) {System.out.print(arr[x][y]+"\t");}System.out.println();}*///这个时候,要注意了,内循环的变化必须和曾经讲过的九九乘法表类似for(int x=0; x<arr.length; x++) {for(int y=0; y<=x; y++) {System.out.print(arr[x][y]+"\t");}System.out.println();}}
}

传智播客Java 二维数组相关推荐

  1. 传智播客java测试题_传智播客Java基础综合测试题

    传智播客Java基础综合测试题 传智播客Java基础综合测试题 第一关 1.动手完成 Java 开发包的安装,并设置环境变量 Path . 2.编写一个程序,要求程序运行后在屏幕上输出: ****** ...

  2. 传智java测试题答案_传智播客Java基础第一阶段习题

    关于java程序员面试的经典题目 传智播客Java基础第一阶段习题 一.单项选择题 1.Java源文件和编译后的文件扩展名分别为( ) A..class和 .java B..java和 .class ...

  3. java就业班学什么呀_传智播客JAVA就业班学习心得

    传智播客JAVA就业班学习心得 4月26日CVS---4月27日UML 连续两天状态很是不好,上课总是不能够集中精神.不知为什么听这两天课的时候精神很涣散,也不知道自己在想什么,一整天的课,似听非听的 ...

  4. 参加口碑最好的广州传智播客Java就业培训班吧

    参加口碑最好的广州传智播客Java就业培训班吧 广州传智播客Java培训课程与时俱进性与科学专业性,为广大学子省去了后顾之忧,其中JAVAEE+android3G/4G培训课程更是以科学的体系为支撑, ...

  5. 成都传智播客java培训中心

    "21世纪什么最重要.人才!" "IT世界里,人才是最宝贵的财富!" 成都传智播客java培训中心,自成立以来!以其雄厚的师资.真实的项目推动,帮助广大的学子走 ...

  6. 成都传智播客Java培训

    成都传智播客Java培训,严格按照北京传智播客的教育模式,为西南IT行业培养了许多优秀的软件开发工程师. 我们有专为0基础.或者基础不够硬的学员开设的Java基础与加强班,让你轻轻松松跨进Java的世 ...

  7. 传智播客java就业班入学测试题(自测+答案)

    ---------------------- ASP.Net+Android+IOS开发..Net培训.期待与您交流! ---------------------- 传智播客java就业班入学测试题 ...

  8. 广州Java培训机构之广州传智播客Java课程

    广州Java培训机构之广州传智播客Java课程      广州传智播客Java课程,全国领先的Java课程,一群敢于创新,勇于创新的精英老师.广州传智播客Java学科,从开设学科以来,秉承着张孝祥老师 ...

  9. 传智播客JAVA培训20100524SPRING SECURITY

    传智播客JAVA培训20100524SPRING SECURITY 这两天反反复复的看了佟刚老师的教育办公管理系统的项目视频,真是感觉到该老师真是强大,讲的项目非常有技术含量,虽然到现在我都还是半知半 ...

  10. 传智播客JAVA培训2010-4-29Lucene总结

    传智播客JAVA培训2010-4-29Lucene总结 今天心情不错,北京的天终于露出了太阳那花儿一般的脸蛋儿,心情也不由因此而生出喜悦,人总是会受环境的影响,下午回来新闻中我看到广东那边发生的事,我 ...

最新文章

  1. UIButton文字居左显示
  2. react开发教程(十)redux结合react
  3. linux杀死oracle进程,杀死进程后,oracle数据库无法启动
  4. React开发(168):...dva调用不成功的原因
  5. 哈利波特与魔杖的故事(洛谷P4613题题解,Java语言描述)
  6. 3天撸了一套SpringBoot+Dubbo+Sentinel秒杀系统,爽!
  7. cad命令栏还原默认_CAD十五个必学的命令 掌握后能走天下了
  8. IOS UIColor 自定义颜色
  9. unix操作系统设计高清中文
  10. redis常用命令getex_Redis 常用命令篇(末尾含不常用)
  11. JMeter java.net.SocketException:Operationnotsupported:connect解决方案
  12. 在 IE 中使用 Windows 窗体控件
  13. Kafka Simple Consumer
  14. java查看已导入的证书_jdk导入证书
  15. STM32F4 之STM32CubeMx编程学习
  16. MFI认证——什么是苹果MFI认证
  17. SLT 定义vetctor对象,vector构造函数
  18. Python解析json文件
  19. linux显示子系统-framebuffer架构分析
  20. 微软azure DNS服务器,什么是 Azure 专用 DNS?

热门文章

  1. 如何查看cudnn当前版本_当前版本的花木兰,如何成为边路战神?
  2. java handlerbase_Java Firebase.AuthResultHandler方法代码示例
  3. windows VC++获取磁盘名称和序列号
  4. 驻马店远大计算机阳业学院,电力学院
  5. LINUX中的gpio口使用方法,Linux中的gpio口使用方法
  6. es的分片和副本_原创|ES广告倒排索引架构演进与优化
  7. BZOJ2555:SubString(SAM,LCT)
  8. iOS移动开发周报-第18期
  9. 谁让APP工程师产生了泡沫?
  10. Visual Leak Detector 2.2.3 Visual C++内存检测工具