一、数组练习:

1.使用两种方式定义一个整形的一维数组,获取数组中的值,为数组中的元素赋值,遍历一维数组

  • 代码:
class SingleDimensionArray {public static void main(String[] args) {int[] arr1 = new int[3];//动态方法定义int类型数组arr1[0] = 1;arr1[1] = 2;arr1[2] = 3;for (int i = 0 ; i < arr1.length ; i ++ ) {System.out.print(arr1[i] + " ");}System.out.println();int[] arr2 = {1,2,3};//静态方法定义int类型数组for (int j = 0 ; j < arr2.length ; j ++ ) {System.out.print(arr2[j] + " ");}}
}
复制代码
  • 运行结果

2.使用静态初始化定义一个整形的二维数组,获取数组中的值,为数组中的元素赋值,遍历二维数组

  • 代码:
class TwoDimensionArrayDemo {public static void main(String[] args) {//静态定义二维数组int[][] arrDimensionArray = {{1,23,223},{232,6767,23,96},{1},{12,0},{1,9,65}};for (int i = 0 ; i < arrDimensionArray.length ; i ++ ) {for (int j = 0 ; j < arrDimensionArray[i].length ; j ++ ) {System.out.print(arrDimensionArray[i][j] + " ");}System.out.println();//每个一维数组遍历完后换行}}
}
复制代码
  • 运行结果:

3.要统计一个公司三个销售小组中每个小组的总销售额以及整个公司的销售额

如下所示: 第一小组销售额为{11, 12}万元 第二小组销售额为{21, 22, 23}万元 第三小组销售额为{31, 32, 33, 34}万元

  • 代码:
class SaleStatistics {public static void main(String[] args) {int[][] groupSale = {{11,12},{21,22,23},{31,32,33,34}};int saleSum = 0;//初始化公司总销售额for (int i = 0 ; i < groupSale.length ; i ++ ) {int groupSum = 0;//初始化各组销售总额for (int j = 0 ; j < groupSale[i].length ; j ++ ) {groupSum += groupSale[i][j];//计数器,计算各组总销售额}System.out.println("第 " + (i + 1) + " 小组的销售额: " + groupSum + " 万元");saleSum += groupSum;//计数器,计算公司总销售额}System.out.println("公司总销售额: " + saleSum + " 万元");}
}
复制代码
  • 运行结果:

4.随机点名器案例

  • 代码:
/*
随机点名器:1.随机抽出3个女英雄进行点名1.存储所有Dota女英雄姓名2.预览所有英雄的姓名3.随机出一个女英雄的姓名
*/
import java.util.Random;
class RollCall {public static void main(String[] args) {String[] names = {"黑暗游侠","秀逗魔导师","月之女祭司","幻影刺客","水晶室女","魅惑魔女","月之骑士","痛苦女王","风行者","蛇发魔女","娜迦海妖","幽鬼","复仇之魂","圣堂刺客","仙女龙","死亡先知","育母蜘蛛"};for (int i = 0 ; i < names.length ; i ++ ) {System.out.print(names[i] + " ");}Random ran = new Random();System.out.println();System.out.println("------------------------------------------------------------------");System.out.println("Dota中共 " + (names.length + 1) + " 名女英雄,开始点名:");for (int j = 1 ; j <= 3 ; j ++ ) {int index = ran.nextInt(names.length);System.out.println("第 " + j + " 个: " + names[index]);}}
}
复制代码
  • 运行结果:

二、加强练习:

1.分析以下需求,并用代码实现:

  • 员工的工龄和基本工资通过键盘录入
  • 例如: 用户输入的工龄为10,基本工资为3000, 如果工龄大于等于10年 并且 工龄小于15年 基本工资涨5000;程序运行后打印格式"您目前工作了10年,基本工资为 3000元, 应涨工资 5000元,涨后工资 8000元" (线索:员工的工龄和基本工资,涨后工资都是一个变量,对工龄进行if判断)
  • 完成工龄在以下区间范围内,涨不同的工资,打印格式同上 [0,1) +200 [1,3) +500 [3,5) +1000 [5,10) +2500 [10,15) +5000 [15,正无穷) +10000 (线索:基本工资和涨后工资是一个变量,用if..else判断工龄所在区间,如果满足,基本工资变量加涨的钱赋值给涨后工资)
  • 代码:
import java.util.Scanner;
class SalaryIncreaseRule {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int seniority = sc.nextInt();//输入工龄int basicWageregularPay = sc.nextInt();//输入基本工资int salary;if (seniority >= 0 && seniority < 1) {salary = basicWageregularPay + 200;}else if (seniority < 3) {salary = basicWageregularPay + 500;}else if (seniority < 5) {salary = basicWageregularPay + 1000;}else if (seniority < 10) {salary = basicWageregularPay + 2500;}else if (seniority < 15) {salary = basicWageregularPay + 5000;}else{salary = basicWageregularPay + 10000;}System.out.println("您目前工作了 " + seniority + " 年,基本工资为 " + basicWageregularPay + " 元, " +"应涨工资 " + (salary-basicWageregularPay) + " 元,涨后工资 " + salary + " 元");     }
}
复制代码
  • 运行结果:

2.看程序,分析下面程序的结果:

  • 代码:
int x = 2,y=3;
switch(x) {
default:y++;
case 3:y++;
break;
case 4:y++;
}
System.out.println("y="+y);
复制代码
  • 输出结果: y=5

3.分析以下需求,并用代码实现:

a.键盘录入两个整数,求这两个数中最大的数和最小的数

(线索:用两个变量max,min,max和min都存储第一个数,第二个数与max比较如果大于max,覆盖掉max值;第二个数与min比较如果小于min,覆盖掉min的值)

  • 代码:
import java.util.Scanner;
class JudgeMaxOrMix {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入第一个数:");int max = sc.nextInt();int min = max;System.out.println("请输入第二个数:");int secondNum = sc.nextInt();if (secondNum < min) {min = secondNum;}else if (secondNum >= max) {max = secondNum;}System.out.println("min= "+min + " ,max= " + max);}
}
复制代码
  • 运行结果:

b.定义一个长度为5的整形数组,为数组中的5个元素赋值,求出数组中最大的数和最小的数

(线索:用两个变量max,min,max和min都存储第一个数组的元素,从数组第二个元素开始,与max比较如果大于max,覆盖掉max值;与min比较如果小于min,覆盖掉min值)

  • 代码:
class ArrayMaxOrMin {public static void main(String[] args) {int[] arr = {3,8,10,1,2};//静态定义数组int max = arr[0];int min = arr[0];for (int i = 1; i < arr.length ; i ++ ) {if (arr[i] > max) {max = arr[i];}else if (arr[i] < min) {min = arr[i];}          }System.out.println("max= " + max + " ,min= " + min);}
}
复制代码
  • 运行结果:

c.将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组

(线索:在b)需求中,不但需要用min和max记录最小值和最大值,还需要两个变量minIndex和maxIndex分别来记录最小值和最大值的索引,然后利用索引来按需求交换两数交换可以尝试使用第三个变量完成)
例如:int[] arr={3,8,10,1,2} 最终数组的结果: arr={1,8,2,3,10}

  • 代码:
class SwapPermutation {public static void main(String[] args) {int[] arr = {3,8,10,1,2};//静态数组int max = arr[0];//将数组第一个数赋值到max中int min = arr[0];//将数组第一个数赋值到min中int maxIndex = 0,minIndex = 0;//初始化最大值索引,最小值索引for (int i = 1 ; i < arr.length ; i ++ ) {//遍历数组if (arr[i] > max) {max = arr[i];//找出最大值maxIndex = i;//把最大值的索引赋值给maxIndex}else if (arr[i] < min) {min = arr[i];//找出最小值minIndex = i;//把最小值的索引赋值给minIndex}}int temp1 = arr[0];//将数组的第一个数赋值给临时变量temp1int temp2 = arr[arr.length-1];//强数组的第二个数赋值给临时变量temp2arr[0] = arr[minIndex];//将数组最小值赋值给数组的第一个数arr[arr.length-1] = arr[maxIndex];//将数组中最大的书赋值给数组的最后一个数arr[minIndex] = temp1;//交换最小值与数组第一个数arr[maxIndex] = temp2;//交换最大值与数组最后一个数for (int j = 0 ; j < arr.length ; j ++ ) {//遍历新数组System.out.print(arr[j] + " ");//输出}}
}
复制代码
  • 运行结果:

转载于:https://juejin.im/post/5a34e6c0f265da43163d241f

java数组基础知识巩固相关推荐

  1. JAVA总裁--Java数组基础知识

    1.数组的定义: 数组是由一组类型相同的数据元素构成的有序集合,每个数据元素称为一个数组元素(简称为元素),每个元素受n(n≥1)个线性关系的约束,每个元素在n个线性关系中的序号i1.i2.-.in称 ...

  2. 你觉得什么才是 Java 的基础知识?

    近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. ...

  3. 计算机java语言教程,计算机JAVA教程二讲Java语言基础知识.doc

    计算机JAVA教程二讲Java语言基础知识 2.1简单数据类型 2.1.1 标识符和保留字 1.标识符 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier).Java语言 ...

  4. hashcode是什么意思_什么才是 Java 的基础知识?

    作者:晓风轻 链接:zhuanlan.zhihu.com/p/28615617 近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java ...

  5. JAVA NIO基础知识

    本文来说下JAVA NIO基础知识. 文章目录 NIO概述 NIO简介 NIO的特性/NIO与IO区别 读数据和写数据方式: NIO核心组件简单介绍 Java NIO 之 Buffer(缓冲区) Bu ...

  6. java 反射基础知识

    java 反射 基础知识 反射:reflection 反射关键类 java 反射部分应用 反射:reflection 在运行中分析类. 在运行中查看和操作对象. 基于反射自己创建对象. 调用不可以访问 ...

  7. Java面试基础知识III

    Java面试基础知识: 1.C++或Java中的异常处理机制的简单原理和应用. 当JAVA 程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常.违反语义规则包括2种情况.一种 ...

  8. Java SE 基础知识

    Java SE 基础知识 1 2 @(Notes)[J2SE, Notes] VICTORY LOVES PREPARATION. 特别说明: 该文档在马克飞象查阅最佳: 本部分知识还在迭代中,欢迎补 ...

  9. 什么才是java的基础知识?

    作者:晓风 出处:https://xwjie.github.io 关于资源视频下载的说明 常用设计模式完整系列篇 [强化编程功底]算法文摘 近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都 ...

最新文章

  1. 设计一条简单的等待工作队列之软件模型设计与实现(二)
  2. CentOS上如何把Web服务器从Apache换到nginx
  3. Android 代码优化工具FindBugs
  4. 一周要回审9000万条视频,内容审核师能被AI拯救吗?
  5. im2col原理小结
  6. ajax 通过json xml文件,php+Ajax处理xml与json格式数据的方法示例
  7. 《完美软件》笔记8:如何应对防卫反应
  8. 此项目需要迁移_AndroidX 迁移,看完它应该就够了
  9. windows 端口映射
  10. 第十一篇 面向对象进阶
  11. 64位Python读取周立功USBCAN-I信息
  12. 小白聊智慧制造之二:智能制造的体系架构
  13. Linux寻找history命令位置,使用history命令在Linux系统上找到最常用的命令
  14. 大数据时代物联网技术发展前景与应用分析
  15. Gensim官方教程翻译(二)——语料库与向量空间(Corpora and Vector Spaces)
  16. git 和 phabricator arc 常用 命令解析
  17. java jdk 8u101_JDK1.8安装
  18. BugkuCTF 游戏过关
  19. 美丽链——看区块链如何重塑内衣业!!
  20. 致远SPM解决方案之合同管理

热门文章

  1. DotNet Bar 之 bubbleBar 使用方法
  2. 沙漠之鹰和战术匕首--两款前端极简模板引擎
  3. 使用c语言写一个学生管理系统,学生信息包含姓名/性别/年龄/成绩,可以查改删增...
  4. pem、 .p12、.cer、pkcs 等文件格式的区别
  5. Altaba宣布5月20日开始出售阿里巴巴股份 可能全部出售
  6. ubuntu配置VNC远程连接服务器图形界面
  7. 【总结】50道Java线程面试题
  8. Ubuntu 12.04不能在华硕F81se系列电脑上安装解决办法
  9. row_number函数的使用
  10. onsen UI popover 的用法