/*** 求数组中的最大值*/@Testpublic  void  test14(){//定义一个数组   参赛的选手int  [] nums={50,20,30,80,100,90};//定义一个擂主int max=0;//循环打擂for (int i = 0; i < nums.length; i++) {//如果发现 数组中的元素 大于 max  就让当前的元素的值给maxif (nums[i]>max) {max=nums[i];System.out.println("历届的擂主::"+max);}}System.out.println("最终的擂主是:"+max);}/*** 求数组中的最小值*/@Testpublic  void  test15(){//定义一个数组   参赛的选手int  [] nums={50,200,30,80,100,90};//定义一个最小值  默认是 数组中的第一个元素int min=nums[0];//循环打擂for (int i = 0; i < nums.length; i++) {//如果发现数组中的元素小于min 把元素的值给minif (nums[i]<min) {min=nums[i];}}System.out.println("最小的数值是:"+min);}

求数组的最大和最小值

public class Array01 {/*** 数组:一组相同数据类型的集合!  在内存中开辟一连串的空间!*   和String一样都是  引用数据类型!*   *   数据类型 [] 数组名称;*   *   数组的下标=数组的长度-1*/public static void main(String[] args) {// 01.声明数组 创建了一个火车厢int[] nums;// 02.分配空间 给火车厢创建座位nums = new int[5];// 03.赋值 旅客入座nums[0] = 50;// 04.使用 nums.length(获取数组的长度)for (int i = 0; i < nums.length; i++) {System.out.println("数组nums的第" + (i + 1) + "个位置的数据是:" + nums[i]);}}// 声明数组的同时给数组赋值
    @Testpublic void test01() {/*** 给你说 创建车厢的同时,告诉你里面有多少个座位* * int  [] nums;* nums={ 1, 2, 3, 4, 5 };  这种写法是错误的!*/int[] nums = { 1, 2, 3, 4, 5 };// 找到下标为3的数据System.out.println(nums[3]);}@Testpublic void test02() {// int[] nums = new int[5]; 可以 常用的方式int[] nums = new int[] { 1, 2, 3, 4, 5 };// 找到下标为3的数据System.out.println(nums[3]);}/*** 计算5位学生的平均分*/@Testpublic void test03() {// 01.创建一个长度为5的double类型的数组 保存学生成绩double[] scores = new double[5];// 02.循环给学生成绩赋值Scanner scanner = new Scanner(System.in);double sum = 0; // 保存总成绩for (int i = 0; i < scores.length; i++) {System.out.println("请输入第" + (i + 1) + "位同学的成绩");scores[i] = scanner.nextDouble();// 每个学生成绩需要加到sum中sum += scores[i];}System.out.println("学生的总成绩是:" + sum);System.out.println("学生的平均分是:" + (sum / scores.length));}/*** 有一个数列:8,4,2,1,23,344,12循环输出数列的值求数列中所有数值的和猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数 */@Testpublic void test04() {// 01.创建int类型数组int nums[] = { 8, 4, 2, 1, 23, 344, 12 };// 定义变量保存总和int sum = 0;// 02.循环输出数列的值for (int i = 0; i < nums.length; i++) {System.out.print(nums[i] + ",");sum += nums[i];}System.out.println("\n数组中数值的总和:" + sum);// 猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数Scanner scanner = new Scanner(System.in);System.out.println("请输入一个数字:");int num = scanner.nextInt();// 定义标记 来记录是否中奖boolean flag = false;for (int i = 0; i < nums.length; i++) {if (num == nums[i]) {flag = true;break;}}if (flag) { // 判断标记System.out.println("恭喜您!中大奖!");} else {System.out.println("没有找到......");}}/*** 以表格的形式输出5笔购物金额及总金额 */@Testpublic void test05() {double[] pays = new double[5];double sum = 0; // 总金额Scanner scanner = new Scanner(System.in);System.out.println("请输入本月的消费记录:");for (int i = 0; i < pays.length; i++) {System.out.println("请输入" + (i + 1) + "次的消费金额:");pays[i] = scanner.nextDouble(); // 给数组中每一个元素赋值// 求和sum += pays[i];}// 输出消费详情 遍历(从集合中取得数据)System.out.println("序号\t\t金额");for (int i = 0; i < pays.length; i++) {System.out.println((i + 1) + "\t\t" + pays[i]);}System.out.println("总金额:" + sum);}/*** Arrays  :数组的操作类*/@Testpublic void test06() {double[] pays = new double[5];Scanner scanner = new Scanner(System.in);System.out.println("请输入本月的消费记录:");for (int i = 0; i < pays.length; i++) {System.out.println("请输入" + (i + 1) + "次的消费金额:");pays[i] = scanner.nextDouble(); // 给数组中每一个元素赋值
        }// 没有排序的遍历for (int i = 0; i < pays.length; i++) {System.out.println(pays[i]);}System.out.println("*************升序之后***************");Arrays.sort(pays);// 升序排列for (int i = 0; i < pays.length; i++) {System.out.println(pays[i]);}}}

/*** 操作数组的工具类!**/
public class Arrays02 {// equals(arr1, arr2) :比较两个数组的内容和长度 是否一致
    @Testpublic void testEquals() {int[] nums1 = { 10, 20, 30, 50 };int[] nums2 = nums1;int[] nums3 = { 10, 20, 30 };System.out.println("nums1与nums2比较:" + Arrays.equals(nums1, nums2));System.out.println("nums1==nums2比较:" + (nums1 == nums2));}// sort(arr):对数组中的元素进行升序的排列
    @Testpublic void testSort() {int[] nums = { 10, 50, 30, 20 };Arrays.sort(nums);for (int i = 0; i < nums.length; i++) {System.out.println(nums[i]);}}/***  toString :把一个数组变成字符串*  [10, 50, 30, 20]   集合toString的结果!*/@Testpublic void testToString() {int[] nums = { 10, 50, 30, 20 };System.out.println(Arrays.toString(nums));}/*** fill(arr,val):将arr数组中的所有元素都赋值成了val*/@Testpublic void testFill() {int[] nums = { 10, 50, 30, 20 };System.out.println(Arrays.toString(nums));Arrays.fill(nums, 100);System.out.println(Arrays.toString(nums));}/*** copyOf(arr,length):将数组arr复制成一个长度为length的新数组!*/@Testpublic void testCopyOf() {int[] nums = { 10, 50, 30, 20 };int[] nums1 = Arrays.copyOf(nums, 3);System.out.println(Arrays.toString(nums1));}/*** binarySearch(arr,val):查询val在arr数组中的下标!* 必须先升序排列!  Arrays.sort(arr)!!!!*/@Testpublic void testBinarySearch() {int[] nums = { 10, 50, 30, 20 };Arrays.sort(nums); // 10 20 30 50System.out.println(Arrays.binarySearch(nums, 50));}}

// 打擂法 求数组中的最大值
    @Testpublic void test01() {int[] nums = { 10, 50, 30, 200 };// 默认的擂主int max = nums[0];// 让max依次和nums中的每一个元素进行比较for (int i = 0; i < nums.length; i++) {if (max < nums[i]) {max = nums[i];}}System.out.println("最大值:" + max);}/*** 插入算法*/@Testpublic void test02() {// 先定义一个有序的数组int[] nums = new int[5];nums[0] = 100;nums[1] = 90;nums[2] = 80;nums[3] = 10;Scanner scanner = new Scanner(System.in);System.out.println("请您输入一个插入的数据:");int num = scanner.nextInt();// 01.找到需要插入数据的位置int index = nums.length;// 02.循环找到位置for (int i = 0; i < nums.length; i++) {if (num > nums[i]) {index = i; // 下标break;}}// 03.元素后移for (int j = nums.length - 1; j > index; j--) {nums[j] = nums[j - 1]; // 依次后移
        }// 04.插入数据nums[index] = num;System.out.println("插入数据的下表是:" + index);System.out.println(Arrays.toString(nums));}

public class CharSort03 {/*** 字符的逆序输出*/public static void main(String[] args) {char[] chars = { 'a', 'f', 'c', 'g', 'z', 'y' };// 升序
        Arrays.sort(chars);System.out.println("升序之后的字符===》" + Arrays.toString(chars));// 逆序System.out.println("逆序之后的字符====");for (int i = chars.length - 1; i >= 0; i--) {System.out.print(chars[i]);}}@Testpublic void test01() {// char类型的默认值: '\u0000'char[] chars = { 'a', 'c', 'f', 'g', 'y', 'z', '\u0000' }; // 必须有顺序
System.out.println(chars.length);char c = 'x'; // 需要插入的字符int index = chars.length;// 找下标for (int i = 0; i < chars.length; i++) {if (c < chars[i]) {index = i;break;}}// 元素后移for (int j = chars.length - 1; j > index; j--) {chars[j] = chars[j - 1];}// 插入数据chars[index] = c;for (int i = 0; i < chars.length; i++) {System.out.print(chars[i]);}}
}

public class DoubleArray04 {public static void main(String[] args) {int[] clazz = new int[3]; // 保存班级int[] students = new int[5]; // 保存学生
}@Testpublic void test01() { // 声明的同时开辟空间int[][] nums = new int[3][5]; // 3个班级各5名学生
    }@Testpublic void test02() { // 先声明 再 开辟空间int[][] nums;nums = new int[3][5]; // 3个班级各5名学生
    }@Testpublic void test03() { // 声明 开辟空间的同时赋值int[][] nums = { { 1, 2, 3, 4, 5 }, { 1, 2, 3, 4, 5 },{ 1, 2, 3, 4, 5 } };System.out.println(nums.length);// 3个班级各5名学生
    }@Testpublic void test04() {int[][] nums = new int[3][5]; // 3个班级各5名学生// 第二个班级的第三个学生nums[1][2] = 50;}@Testpublic void test05() {int[][] nums = { { 1, 2, 3 }, { 10, 20, 30 }, { 100, 200, 300 } };/*** nums.length   车厢数* nums[i].length 车厢中的座位数* 双重循环:*   外层循环执行一次,内存循环执行一遍!*/for (int i = 0; i < nums.length; i++) {System.out.println("进入了第" + (i + 1) + "个车厢**********");if (i == 2) {break; // 跳出当前循环体
            }for (int j = 0; j < nums[i].length; j++) {if (j == 2) {break; // 跳出当前循环体
                }System.out.println(nums[i][j]);}}}/*** 所有的引用数据类型如果没有实例化(开辟空间)! 不能使用!* 因为引用数据类型的默认值 是  null!*/@Testpublic void test06() {int[][] nums = new int[5][];System.out.println(nums.length);nums[0] = new int[5]; // 开辟空间nums[1] = new int[6];nums[0][0] = 50; // 使用nums[0][1] = 60;nums[0][2] = 70;nums[0][3] = 80;System.out.println(nums[0].length);System.out.println(nums[1].length);}}

/*** 冒泡排序 升序的排列*/
@Test
public  void  test17(){int [] nums={1,5,8,2,3,5};/*** 外层循环控制轮数     数组的长度-1* 外层循环每执行一次, 内层循环执行一遍*/for (int i = 0; i < nums.length-1; i++) {System.out.println("这是第"+(i+1)+"轮===================");//内层循环    数组的长度-1-ifor (int j = 0; j < nums.length-i-1; j++) {System.out.println("比较了第"+(j+1)+"次");}}
}/*** 冒泡排序 升序的排列*/
@Test
public  void  test18(){int [] nums={10,5,8,2,3,50,5000,500,30,65,98};/*** 外层循环控制轮数     数组的长度-1* 外层循环每执行一次, 内层循环执行一遍* * 无论多少个数字相比* 都是相邻的两个数字进行比较,* 数值小的元素会交换前面的位置* 代码:* 外层循环 : 数组长度-1* 内层循环: 数组长度-1-i* */for (int i = 0; i < nums.length-1; i++) {//内层循环    数组的长度-1-ifor (int j = 0; j < nums.length-i-1; j++) {if (nums[j]>nums[j+1]) { //相当于 第一个元素大于下一个元素 ,那么需要和下个元素换位置//等量转换int  temp=nums[j];nums[j]=nums[j+1];nums[j+1]=temp;}}}//遍历数组中的元素for (int i : nums) {System.out.println(i);}
}

冒泡排序

public class TestArrays {/*** Arrays.equals(数组1,数组2)* 01.首先比较的而是数组的长度是否一致* 02.比较数组中的元素  */@Testpublic void  test01(){int nums1[]={10,20,30};int nums2[]={10,20,30};int nums3[]={10,30,20};System.out.println(nums1==nums2);  //比较内存地址  false//equalsSystem.out.println(nums1.equals(nums2));   //底层还是比较内存地址  falseSystem.out.println(Arrays.equals(nums1, nums2));  //true//System.out.println(Arrays.equals(nums1, nums3));  //false
    }/*** [L@4a7fca02  :数组toString()的结果*/@Testpublic void test02(){int nums1[]={10,20,30};System.out.println(nums1);//把数组转换成字符串
        System.out.println(Arrays.toString(nums1));}@Testpublic void test03(){int nums1[]={10,20,30};//把数组转换成字符串
        System.out.println(Arrays.toString(nums1));//copyOf(数组,长度)int[] nums2 = Arrays.copyOf(nums1, 10);System.out.println(Arrays.toString(nums2));}@Testpublic void test04(){int nums1[]={10,20,30};System.out.println("nums1之前的值:"+Arrays.toString(nums1));//fill(数组,值)Arrays.fill(nums1, 500);System.out.println("nums1fill之后的值:"+Arrays.toString(nums1));}/*** binarySearch(数组,值)* 查询值 在数组中下标的位置*/@Testpublic void test05(){int nums1[]={100,200,10,20,30};//01.必须先排序   升序
        Arrays.sort(nums1);//02.查询20的下标    [10,20,30,100,200]System.out.println(Arrays.binarySearch(nums1, 300));}}

Arrays工具类的使用

/*** * 二维数组: 数组中的元素 又是一个数组!*/@Testpublic void test06(){//01.创建二维数组int[][] nums=new int[3][3]; //int [][] nums2={{1,2,3},{4,5,6},{7,8,9}};
        nums[0][0]=5;nums[0][1]=6;nums[0][2]=7;nums[1][0]=5;nums[1][1]=6;nums[1][2]=7;nums[2][0]=5;nums[2][1]=6;nums[2][2]=7;}@Testpublic void test07(){//01.创建二维数组int [][] nums={{1,2,3,4},{4,5,6},{7,8}};System.out.println(nums[0]);//{1,2,3}System.out.println(nums[0][1]);//2System.out.println("nums的长度:"+nums.length);System.out.println("第2个数组中下标是2的元素"+nums[1][2]);}/*** 循环打印出数组所有的元素*/@Testpublic void test08(){//01.创建二维数组int [][] nums={{1,2,3,4},{4,5,6},{7,8}};for (int i = 0; i < nums.length; i++) {  //外层System.out.println("这是2维数组中的第"+(i+1)+"个数组");for (int j = 0; j < nums[i].length; j++) {//内层System.out.println("元素的值:"+nums[i][j]);}}}

二维数组

 /*** * 已知有3个班级各3名学员,请使用*二维数组计算各个班级的总成绩*/@Testpublic void test10(){//01.创建二维数组int [][] nums=new int[3][3];  Scanner scanner=new Scanner(System.in);//定义一个数组变量 存储每个班级的成绩int  sum[]=new int[nums.length];//02.让用户循环给数组 赋值for (int i = 0; i < nums.length; i++) {System.out.println("请输入第"+(i+1)+"个班级的学生成绩:");for (int j = 0; j < nums[i].length; j++) {System.out.println("请输入第"+(j+1)+"个成绩:");nums[i][j]=scanner.nextInt();  //学生成绩赋值sum[i]+=nums[i][j];  //每个班级的总成绩
            }}System.out.println("学生的成绩***********************");for (int i = 0; i < nums.length; i++) {for (int j = 0; j < nums[i].length; j++) {System.out.println("第"+(i+1)+"个班级的第"+(j+1)+"个学生的成绩:"+nums[i][j]);}}System.out.println("班级的成绩***********************");for (int i = 0; i < sum.length; i++) {System.out.println("第"+(i+1)+"个班级的总成绩是:"+sum[i]);}}@Testpublic void test011() {//有3个班各3名学生某门课程的成绩,//01.定义一个2维数组int [][] scores=new int[3][3];Scanner scanner=new Scanner(System.in);//02.循环给学生赋值for (int i = 0; i < scores.length; i++) {System.out.println("请输入第"+(i+1)+"班级学生的成绩:===========");for (int j = 0; j < scores[i].length; j++) {System.out.println("请输入第"+(j+1)+"个学生的成绩:");scores[i][j]=scanner.nextInt();}}System.out.println("学生的成绩统计如下******************");// 如何计算3个班各自的总成绩?for (int i = 0; i < scores.length; i++) {// 每个班级都清零int sum = 0;for (int j = 0; j < scores[i].length; j++) {sum += scores[i][j];}System.out.println("第" + (i + 1) + "班级学生的成绩总和===" + sum);}}

二维数组小练习

转载于:https://www.cnblogs.com/xtdxs/p/7093799.html

java09数组的使用相关推荐

  1. python输入国家显示首都名_Java各国首都列表

    Java代码常用写法总结 1.字符串是否为空判断 以下是java 判断字符串是否为空的四种方法:方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||" ...

  2. 269道各路算法考试题集锦

    1 某编程大赛题(35道题,中等难度) 1.在实际的开发工作中,对于string的处理是最常见的编程任务,本题是要求程序对用户输入的string进行处理,具体要求如下: 1.每个单词的首字母变为大写. ...

  3. 分割数组(将数组三等分)

    简单面试题--分割数组 时间复杂度O(n) //输入:一个自然数数组,选取其中2个数字num[i], num[j], 把数组三分, // 每一部分的累加和(不包括分割点的数字)相等. // 例:num ...

  4. Redis 笔记(11)— 文本协议 RESP(单行、多行字符串、整数、错误、数组、空值、空串格式、telnet 登录 redis)

    RESP 是 Redis 序列化协议Redis Serialization Protocol 的简写.它是一种直观的文本协议,优势在于实现异常简单,解析性能极好. ​ Redis 协议将传输的结构数据 ...

  5. C++ 笔记(27)— 指针变量、数组和指针、指针数组、数组指针、指针常量与常量指针

    1. 什么是指针变量? 指针变量是专门有一个变量来存放指针. int main(int argc, char *argv[]) {int a = 10;int *p = &a; //通过取地址 ...

  6. Go 学习笔记(63)— Go 中的 for ... range 对切片和数组的差异

    1. 迭代对象是切片,迭代过程中修改切片 package mainimport "fmt"func main() {// 示例1.numbers1 := []int{1, 2, 3 ...

  7. NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存

    NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...

  8. 判断某数组是不是二叉树的前序遍历序列 python递归

    code class Solution:def VerifySquenceOfBST(self, sequence):# write code hereif len(sequence) <= 0 ...

  9. 寻找一个字符串的重复子串 后缀数组

    什么是后缀数组 令字符串 S=S[1]S[2]...S[n]S=S[1]S[2]...S[n]{\displaystyle S=S[1]S[2]...S[n]} , S[i,j]S[i,j]{\dis ...

最新文章

  1. 遇见BUG(3)critical warning也要关注!
  2. The Linux SG_IO ioctl in the 2.6 series
  3. 8.Java格式化输出
  4. (五十五)iOS多线程之GCD
  5. 美团点评境外度假团队前端项目开发实践总结
  6. 减治法解决约瑟夫斯问题(JAVA)
  7. 谷歌推Android 8.1开发者预览版,Pixel 2神秘芯片终于派上用场了
  8. 此版本的 SQL Server 不支持用户实例登录标志。该连接将关闭“的解决
  9. 如何使用代码确定设备屏幕大小类别(小,普通,大,xlarge)?
  10. 四边形不等式优化dp
  11. PySide6开发-03-QLineEdit
  12. 单片机实验六 动态数码管实验
  13. 永不消逝的电波 -GSM空口信号的接收与解码
  14. HBGGP的工程建立过程
  15. 微信订阅号之1-注册
  16. 折腾家里的龟速网络有感
  17. 克罗内克积Kronecker
  18. matlab示波器绘图工具,快速绘制Simulink示波器波形
  19. 化妆品零售变革 电子商务VS传统零售
  20. Latex 多个参考文献的引用以及文献字体大小调整方法

热门文章

  1. 中加学校计算机考试题,嘉应学院2009年计算机期末考试试题
  2. sql int 比较_分享 21 个编写 SQL 的好习惯
  3. css table设置边框_table布局的一些总结
  4. 支付时报错java.lang.RuntimeException: 【微信统一支付】发起支付, returnCode != SUCCESS, returnMsg = appid和mch_id不匹配
  5. 错误Cannot resolve org.springframework.data:spring-data-redis:2.2.6 RELEASE
  6. Vue + Spring Boot 学习笔记01:实现用户登录功能
  7. 【Tyvj3500】【BZOJ1031】字符加密,后缀数组
  8. 【codevs1368】【BZOJ1034】泡泡堂BNB,贪心思路
  9. 【Level 08】U07 Mixed Feelings L6 State of the Nation
  10. 【英语学习】【English L06】U07 Jobs L1 A computer programmer