zoukankan      html  css  js  c++  java
  • day06数组、数组声明和赋值、数组复制、数组排序

    复习

    1.do-while

    1)语法

      do{

         //循环体

      }while(<条件>);

    2.whiledo-while

    1)while

      先判断,后执行

      初始条件不满足,一次都不执行

    2)do-while

      先执行,后判断

      初始条件不满足,也会至少执行一次

    3.for循环

    1)语法

      for(表达式1;表达式2;表达式3){

         //循环体

      }

    4.循环流控

    1)break

      跳出,终止循环

    2)continue

      跳过本次循环,继续下次循环

    5.循环嵌套

    1)什么是循环嵌套

    2)循环嵌套的注意事项

    笔记

    1.数组

    1)什么是数组

      数组就是一种能够保存

      多个相同数据类型数据的变量

    2)为什么使用数组

      在处理较多同类型数据时

      可以使用数组减少代码冗余

    3)数组的组成

      3.1)数组名称

      3.2)数组元素

      3.3)数组长度

      3.4)数组下标

    4)数组的声明

      <类型>[] <数组名>;

      int[] nums;

      int nums[];//不推荐

    5)数组的初始化

      <数组名>=new <类型>[<长度>];

      nums=new int[5];

      合二为一

      int[] nums=new int[5];

    6)数组的使用

      使用原则:使用元素的下标来指定元素

      <数组名>[<下标>]=...;

      nums[0]=12;

      System.out.println(nums[0]);

      nums[1]=nums[0]+8;

    7)数组的遍历

      遍历就是访问数组中所有元素一遍

      只要是对数组的遍历

      就使用循环(for循环)

    8)数组长度的获取

      <数组名>.length;

      一个数组第一个元素的下标:

                     0

      一个数组最后一个元素的下标:

                     <数组名>.length-1

    2.使用数组的注意事项

    1)数组初始化之后

      元素都有默认值

      (0.0false)

    2)数组初始化后

      长度不能修改

    3)使用数组下标时

      要小心数组下标越界

    3.数组声明时赋值;

    1)int[] nums={9,3,6,4,7,1,8};

      必须声明后立即使用{}赋值

    2)int[] nums;

      nums=new int[]{5,7,1,9,3,6,3,8};

      数组声明后,可以使用new int[]{}

      来赋值

    4.数组的引用类型特征

      当一个数组通过=赋值给另一个数组时

      这两个数组是相同的引用

      会造成修改A数组同时影响B数组的情况

      为了避免这种情况要掌握数组

      复制的操作

    5.数组复制

    1)复制一个和数组完全相同或部分相同的新数组

    2)数组复制的方法

      2.1)手动编写for循环复制数组

      2.2)System.arraycopy(1,2,3,4,5);

          1源数组

          2从源数组复制的起始位置

          3新数组

          4新数组起始位置

          5复制元素的个数

      2.3)Arrays.copyOf(1,2);

          1.源数组

          2.复制几个

          Arrays.copyOf()的特性导致

          在程序中

          需要数组扩容或缩容时

          优先使用该方法

    6.数组排序

    1)将数组中的元素按照顺序排列的操作

    2)使用java提供的排序方法

      Arrays.sort(1);

      1.要排序的数组

      排序之后,数组中的元素

      会以升序方式排列

      如果想得到降序数组

      需要使用"逆序输出"

    3)我们也可以自己编写代码来对数组进行排序

    作业

    1)有5个学生成绩分别为75,92,63,70,88

      将这5个成绩放入数组后遍历输出

            int[] nums={75,92,63,70,88};
            for (int i = 0; i < nums.length; i++) {
                System.out.println(nums[i]);
            }
    View Code

    2)有5个商品价格分别为25.7 , 12.4 , 8.0 , 3.6 , 6.8

      将这个5个价格放入输出后遍历输出,并计算5个商品价格之和

            double total = 0;
            double[] prices = { 25.7, 12.4, 8.0, 3.6, 6.8 };
            for (int i = 0; i < prices.length; i++) {
                System.out.println(prices[i]);
                total += prices[i];
            }
            System.out.println("价格之和:" + total);
    View Code

    3)定义一个长度为8的数组, 输出这个数组中的最大值

            int[] nums = { 8, 7, 3, 9, 5, 4, 1, 6 };
            int max = nums[0];// 默认第一个最大
            for (int i = 0; i < nums.length; i++) {
                if (nums[i] > max) {
                    max = nums[i];
                }
            }
            System.out.println("最大值: " + max);
    View Code

    数组复制

    1)int[] num={7,6,3,9,8,4,1,2};

      想通过数组复制,得到以下数组内容

      arr  :    {0,0,9,8,4,0,0};

            int[] nums= {7,6,3,9,8,4,1,2};
            
            //1.定义一个新数组,用于接收源数组的数据
             int[] arr=new int[nums.length-1];
                       //{0,0,0,0,0,0,0,0};
             
            //2.进行数组复制
             System.arraycopy(nums,3,arr,2,3);
             
            //3.输出
            for(int i=0;i<arr.length;i++) {
                System.out.print(arr[i] +" ");
            }
    View Code

    2)Arrays.copyOf():

      int[] nums={1,2,3,4,5,6};

      通过数组扩容, 得到以下数组

      arr:       {1,2,3,4,5,6,0,0,0}

            int[] nums = { 1, 2, 3, 4, 5, 6 };
            // 1.复制数组并赋给新的数组变量
            int[] arr = Arrays.copyOf(nums, nums.length + 3);
            // 2.输出数组数据
            for (int i = 0; i < arr.length; i++) {
                System.out.print(arr[i] + " ");
            }
    View Code
  • 相关阅读:
    Record
    Solution -「洛谷 P6287」「COCI 2016-2017」Mag
    Solution -「洛谷 P3773」「CTSC 2017」吉夫特
    Solution -「SP 106」BINSTIRL
    Record
    Record
    Record
    Solution Set -「CSP-S 2020」
    MDK在SRAM中运行-STM32F103RCT6为例
    STM8S103F3P STVD+COSMIC开发环境搭建
  • 原文地址:https://www.cnblogs.com/hxun/p/11544296.html
Copyright © 2011-2022 走看看