ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

06-数组

2022-07-12 08:33:54  阅读:160  来源: 互联网

标签:arr 06 int 元素 System 数组 out


day01~day03 概念相对比较多,多记忆就可以了。

从day04开始,要记的只有一个格式,和代码的执行流程。

更多的是去做一些相对比较综合的练习。

从day04开始,代码量就渐渐的增多了,要多思考多练习。

在练习的时候要连两点:

​ 一上课的代码。

​ 二作业。

在晚自习的时候,先拿着讲义从头到尾复习一下,把上课没来得及写完的代码在晚自习的时候写完

然后再写作业。

如果来不及,那么在自习或者休息的时候可以继续干。

如果目前课堂上和作业里面我能全部完成,还有一点时间我该怎么办?

我个人建议,往后预习,目前而言不需要额外去找很多的练习去做。

尽可能的多学点东西,再去写一个相对比较综合的练习。

从第四天开始,代码量逐渐的加了,所以在上课的时候,建议大家还是用电脑去学习。

因为手机的屏幕太小,上课看不清字的。

第一章 数组

1.1什么是数组

​ 数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。

1.2数组定义格式

第一种(常用)

​ 数据类型[] 数组名

​ 示例:

int[] arr;        
double[] arr;      
char[] arr;

第二种

​ 数据类型 数组名[]

​ 示例:

int arr[];
double arr[];
char arr[];

1.3数组静态初始化

1.3.1什么是静态初始化

​ 在创建数组时,直接将元素确定

1.3.2静态初始化格式

  • 完整版格式

    数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
    举例:
    int[] arr = new int[]{1,2,3,4};
    
  • 简化版格式

    数据类型[] 数组名 = {元素1,元素2,...};
    举例:
    int[] arr = {1,2,3,4};
    

1.3.3静态初始化格式详解

  • 等号左边:
    • int:数组的数据类型
    • []:代表这是一个数组
    • arr:代表数组的名称
  • 等号右边:
    • new:为数组开辟内存空间
    • int:数组的数据类型
    • []:代表这是一个数组
    • {}:表示数组里面存储的所有元素

1.4数组元素访问

1.4.1什么是索引

​ 每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。

​ 这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。

1.4.2访问数组元素格式

数组名[索引];

1.4.3索引的作用:

  • 利用索引可以获取数组中的元素
  • 利用索引可以把数据存储到数组中

代码示例:

public class ArrayDemo {
    public static void main(String[] args) {
        int[] arr = new int[3];

        //输出数组名
        System.out.println(arr); //[I@880ec60

        //输出数组中的元素
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
    }
}
练习1:数组的遍历

遍历:把数组里面所有的元素都一一获取出来,并按照指定格式进行打印

输出格式:[1, 2, 3, 4, 5]

代码示例:

//1.定义数组并存储元素
int[] arr = {1, 2, 3, 4, 5};

//2.遍历
//在循环开始之前,打印左括号
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
    //i 依次表示数组里面的每一个索引
    //arr[i] 依次表示数组里面的每一个元素
    if(i == arr.length -1){
        System.out.print(arr[i]);
    }else{
        System.out.print(arr[i] + ", ");
    }
}
//在循环结束之后,打印有括号
System.out.print("]");
练习2:累加求和

需求:

​ 定义一个数组,存储1,2,3,4,5

​ 遍历数组得到每一个元素,求数组里面所有的数据和

代码示例:

//1.定义数组并存储元素
int[] arr = {1,2,3,4,5};

//2.遍历数组并求和
//累加思想:就是定义一个变量sum,把所有的元素都累加到sum当中
int sum = 0;
for (int i = 0; i < arr.length; i++) {
    //i 依次表示数组里面的每一个索引
    //arr[i] 依次表示数组里面的每一个元素

    //问:此时我是把i累加到sum中,还是把arr[i]累加到sum中
    //累加arr[i]
    sum = sum + arr[i];// +=
}

//3.输出
System.out.println(sum);
练习3:统计个数

需求:

​ 定义一个数组,存储1,2,3,4,5,6,7,8,9,10
遍历数组得到每一个元素,统计数组里面一共有多少个能被3整除的数字

代码示例:

//1.定义数组并添加数据
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

//2.看到统计,就要想要计数器思想
int count = 0;
for (int i = 0; i < arr.length; i++) {
    //i  索引  arr[i]  元素
    if(arr[i] % 3 == 0){
        count++;
    }
}

//3.循环结束之后,表示所有的元素都已经判断完毕
System.out.println(count);
练习4:变化数据

需求:

​ 定义一个数组,存储1,2,3,4,5,6,7,8,9,10
遍历数组得到每一个元素,将其中的奇数扩大两倍,偶数变成二分之一

//1.定义数组并存储元素
int[] arr = {1,2,3,4,5,6,7,8,9,10};
//2.遍历数组得到每一个元素
//然后对每一个元素进行判断,如果是奇数,就*2。如果是偶数,就/2
for (int i = 0; i < arr.length; i++) {
    //i 索引  arr[i] 元素
    if(arr[i] % 2 == 0){
        //写偶数的逻辑
        //先把数组里面的元素拿出来除以2,得到一个结果再赋值给原来的位置
        arr[i] = arr[i] / 2;
    }else{
        //写奇数的逻辑
        //先把数组里面的元素拿出来乘以2,得到一个结果再赋值给原来的位置
        arr[i] = arr[i] * 2;
    }
}

//3.遍历验证一下结果
for (int i = 0; i < arr.length; i++) {
    System.out.print(arr[i] + " ");
}

1.5 数组动态初始化

1.5.1什么是动态初始化

​ 数组动态初始化就是只给定数组的长度,由系统给出默认初始化值。

1.5.2动态初始化格式

数据类型[] 数组名 = new 数据类型[数组长度];
int[] arr = new int[3];

1.5.3动态初始化格式详解

等号左边:

  • int:数组的数据类型
  • []:代表这是一个数组
  • arr:代表数组的名称

等号右边:

  • new:为数组开辟内存空间
  • int:数组的数据类型
  • []:代表这是一个数组
  • 5:代表数组的长度

1.6 数组的练习

1.6.1数组最值

最大值获取:从数组的所有元素中找出最大值。

实现思路:

  • 定义变量,保存数组0索引上的元素
  • 遍历数组,获取出数组中的每个元素
  • 将遍历到的元素和保存数组0索引上值的变量进行比较
  • 如果数组元素的值大于了变量的值,变量记录住新的值
  • 数组循环遍历结束,变量保存的就是数组中的最大值

代码实现:

//扩展1:max的值能不能写0?最好不要写0。
//      一般都会赋值数组中的某个元素

//扩展2:循环从0开始,或者循环从1开始,对结果有没有影响?
//       没有
//      如果循环从0开始,那么多了一次,自己跟自己比的过程。
//      对结果没有任何影响,只不过多循环了一次而已。


//1.定义数组存储元素
int[] arr = {33,5,22,44,55};
//2.定义一个变量max
int max = arr[0];
//3.遍历数组
for (int i = 1; i < arr.length; i++) {
    // i 索引  arr[i] 元素
    if(arr[i] > max){
        max = arr[i];
    }
}
//4.当循环结束之后,max记录的就是最大值
System.out.println(max);

1.6.2 遍历数组求平均额数

需求:生成10个1~100之间的随机数存入数组

1)求出所有数据的和

2)求所有数据的平均数

代码示例:

import java.util.Random;

public class ArrDemo13 {
    public static void main(String[] args) {
        //1.定义数组
        int[] arr = new int[10];
        //2.生成10个随机数存入数组
        Random r = new Random();
        for (int i = 0; i < arr.length; i++) {
            //生成随机数
            int number = r.nextInt(100) + 1;
            //把生成的随机数存入数组
            arr[i] = number;
        }
        //3.求和
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            //累加
            sum = sum + arr[i];
        }
        //4.平均数
        int avg = sum / arr.length;

        //5.打印
        System.out.println(avg);
    }
}

1.6.3交换数组中的数据

本题的前置练习1:

交换两个变量的值

int a = 10;
int b = 20;

//把a原本的值做了临时存储
int c = a;

//把b的值交给了a。
a = b;

//把c的值交给b
b = c;

System.out.println(a);
System.out.println(b);

本题的前置练习2:

把0索引的元素跟最后一个元素进行交换

int[] arr = {1,2,3,4,5};
//第一个和最后一个交换
// 5 2 3 4 1

int temp = arr[0];
arr[0] = arr[4];
arr[4] = temp;

for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

需求:定义一个数组,存入1,2,3,4,5。交换首尾索引对应的元素。

交换前:1,2,3,4,5

交换后:5,4,3,2,1

代码示例:

//1.定义数组
int[] arr = {1, 2, 3, 4, 5};
//2.循环交换数据
for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
    //交换i和j指向的元素即可
    int temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
}
//3.遍历数组
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

标签:arr,06,int,元素,System,数组,out
来源: https://www.cnblogs.com/OnlyOnYourself-lzw/p/16468680.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有