首页 > 编程语言 >javaSE学习 day04

javaSE学习 day04

时间:2024-07-15 18:25:21浏览次数:20  
标签:arr 遍历 int System day04 学习 数组 javaSE out

目录

1.数组

1.1数组是什么

1.2静态数组

1.2.1数组的格式

1.2.2数组的访问

1.2.3获取数组的长度

1.3动态数组

1.3.1动态数组是什么

1.3.2动态数组的格式 

1.3.3默认值规则

1.4数组的遍历

1.4.1什么是数组的遍历

1.4.2为什么要遍历

1.4.3遍历的格式

1.5综合案例

1.5.1计算班级学生的Java成绩信息

1.5.2谁最漂亮

1.5.3扑克牌

2.二维数组

2.1二维数组是什么

2.2静态初始化

2.3动态初始化

2.4二维数组的访问

2.5二维数组的遍历

2.6案例(打乱数字)


1.数组

1.1数组是什么

数组是一个数据容器,可用来存储一批同类型的数据。

1.2静态数组

1.2.1数组的格式

//静态数组,定义时已经确定了数据

数据类型[] 数组名={元素一,元素二,元素三,...};

int[] arr={1,2,3};

//完整格式

数据类型[] 数组名=new 数据类型[] {元素一,元素二,元素三,...};

int[] arr=new int[] {1,2,3};

注:“数据类型[ ] 数组名”也可以写作“数据类型 数组名[ ]”。

1.2.2数组的访问

数组名[索引]

注:元素在数组中存储,是有顺序的. 这个顺序在数组中叫索引,从0开始 。

注:如果访问的索引不存在 就会出现索引越界问题。

int[] arr = {13,14,222,1,2,33};
System.out.println(arr[0]);
arr[2] = 111;
System.out.println(arr[2]);

1.2.3获取数组的长度

获取数组的长度(就是数组元素的个数)

int[] arr = {13,14,222,1,2,33};
System.out.println("arr数组中数组的个数:"+arr.length);

1.3动态数组

1.3.1动态数组是什么

定义数组时先不存入具体的元素值,只确定数组存储的数据类型和数组的长度

1.3.2动态数组的格式 

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

1.3.3默认值规则

数据类型明细默认值
基本类型byte、short、char、int、long0
float、double0.0
booleanfalse
引用类型类、接口、数组、Stringnu'l

1.4数组的遍历

1.4.1什么是数组的遍历

就是一个一个数据的访问。

1.4.2为什么要遍历

求和、元素搜索、找最大值、找最小值

1.4.3遍历的格式

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

1.5综合案例

1.5.1计算班级学生的Java成绩信息

 /*
        需求分析:
           求8名学生java成绩的 平均分 最高分 最低分
           步骤:
              1.定义数组,用来存储8名学生的成绩 (采用动态初始化)
              2:录入8名学生的成绩
               2.1 创建键盘录入对象
               2.2 循环8次,循环次数和数组的长度一致
               2.3 每次循环,让用户输入一个成绩,然后把成绩存到数组中
             3:求出学生的平均分 最高分 最低分
              3.1 求出所有成绩的和---求出平均分
              3.2 找出最高分 最低分
            4:把平均分 最高分 最低分 打印
       */
public static void main(String[] args) {
        double[] arr=new double[8];
        Scanner sc=new Scanner(System.in);
        for (int i = 0; i < arr.length; i++) {
            System.out.println("请输入第"+(i+1)+"号学生的成绩:");
            double score=sc.nextDouble();
            arr[i]=score;
        }
        double sum=0;
        double max=arr[0];
        double min=arr[0];
        for (int i = 0; i < arr.length; i++) {
            sum+=arr[i];
            if (max>arr[i]){
                max=arr[i];
            }
            if (min<arr[i]){
                min=arr[i];
            }
        }
        double avg=sum/ arr.length;
        System.out.println("平均成绩为:"+avg);
        System.out.println("最高分为:"+max);
        System.out.println("最低分为:"+min);
    }

1.5.2谁最漂亮

/*
         数组求最值问题
           思路
              1:循环外定义一个最大值max 接收数组第一个元素 (假设第一个是最大的)
              2:遍历数组,将数组中的元素与max比较,如果大于max,则将max替换为当前元素(保证max是比较后的最大值)
              3:循环结束后,max就是数组中的最大值
         */
public static void main(String[] args) {
        int[] arr={15,9000,10000,20000,9500,-5};
        int max=arr[0];
        for (int i = 1; i < arr.length; i++) {
            int data=arr[i];
            if (data>max){
                max=data;
            }
        }
        System.out.println(max);
    }

1.5.3扑克牌

开发一个简易版的斗地主游戏,要求只完成做牌(存储54张牌)、洗牌。

    public static void main(String[] args) {
        //1:用动态初始化的方式 定义一副扑克牌 长度为54
        String[] pokerBox =new String[54];

        //2:准备 花色 和 点数
        // 扑克牌的花色 四种
        String[] colors = {"♦","♣","♥","♠"};
        //扑克牌点数 13种
        String[] numbers = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
        //组装牌?遍历点数 再遍历花色 点数和花色拼接,拼接之后存到数组的指定位置
        //2.1 定义变量 index 表示 扑克牌的存储位置(索引)
        int index = 0;
        //2.2 先遍历点数 每个点数和不同花色进行拼接产生新的牌
        for (int i = 0; i < numbers.length; i++) {
            //i 遍历点数数组 的索引
            String number = numbers[i];//获取点数  2 3  4  5 .....
            for (int j = 0; j < colors.length; j++) { //j 遍历花色数组的索引
                String color = colors[j];//取出的  "♦","♣","♥","♠"
                //拼接一张牌
                String card = color+number;//拼接牌
                pokerBox[index] = card;//存到指定的位置
                index++;//该下一个位置
            }
        }
        //4*13=52 还少  小王  大王
       pokerBox[index] = "

标签:arr,遍历,int,System,day04,学习,数组,javaSE,out
From: https://blog.csdn.net/zhangnobill/article/details/140436529

相关文章

  • IP协议学习笔记
    目录IP地址格式IP分类CIDR和子网掩码介绍NAT+公网、私网地址CIDR与VLSMVLSM子网划分案例练习ReferenceIP的作用类似物理世界中的地址,用于定位机器的位置。只不过物理的地址是文字描述,计算机世界的IP是一串二进制数,并且它是有一定约定和规则的。下面我来学习关于IP的一些历......
  • redis学习-9(哨兵)
    概念主从复制问题1、高可用主节点不可用,需要人工干预进行故障转移,即使自动化了还存在许多问题。2、redissentinel自动完成故障发现和转移,并通知应用方,实现高可用。存在多个哨兵和数据节点,每个哨兵节点对数据节点和其他哨兵节点进行监控,当节点不可达时,多个哨兵对其进行分析,......
  • vue3+vite学习日记之路由
    一、新项目开启网上的项目视频大多数要什么加好友、评论啥的,我嫌麻烦,还是自己边看边写自己的项目吧。ps:可能会和参考视频有一些差异。二、项目创建先创建项目并进行一些安装配置:1、npmcreatevite@latest->输入项目名称->选择vue->选择ts->根据提示进行 2、安装vue-rou......
  • Scrum学习心得
       作为一种敏捷开发框架,强调团队的协作、快速响应变化以及持续的价值交付, Scrum迭代开发模式让我印象深刻。   Scrum将项目分解为短周期的迭代,每个迭代都能产生可交付的成果,这不仅能够及时获得用户反馈,还能够让团队根据实际情况迅速调整方向,避免了在错误的道路上走......
  • Docker学习笔记
    安装不要安装debian自带的docker:sudoaptinstalldocker-compose。debian11和debian12安装的都是v1,没有dockercompose命令。用官网的安装方式:https://docs.docker.com/engine/install/debian/#install-using-the-repository创建imagehttps://docs.docker.com/reference/cl......
  • 数据结构学习笔记——线性表
    链表1.单链表链表的插入:    (1)需要知道插入位置的前驱结点(从表头顺序遍历)    (2)先修改要插入的结点(新结点)的指针    (3)再修改前驱结点的指针链表的删除:    (1)要知道删除结点的前驱结点(从表头顺序遍历)    (2)只需要修改前驱结点的指......
  • opencv—常用函数学习_“干货“_7
    目录十九、模板匹配从图像中提取矩形区域的子像素精度补偿(getRectSubPix)在图像中搜索和匹配模板(matchTemplate)比较两个形状(轮廓)的相似度(matchShapes)解释二十、图像矩计算图像或轮廓的矩(moments)计算图像或轮廓的Hu不变矩(HuMoments)解释使用示例二一、......
  • 支配树学习笔记
    先抛出一个问题:给一个有向图,问从\(1\)节点出发,求每个节点的受支配集。这里,支配的定义为:若从\(1\)结点出发到\(v\)节点的所有路径中,都必须经过\(u\)节点,则称\(u\)支配\(v\)。那么受支配集意思就是对于\(v\)点满足条件的\(u\)点的集合。那么根据支配的定义,我们可以......
  • 【文化课学习笔记】【物理】动量
    【物理】动量冲量基础概念定义力在时间上的积累。冲量一般用字母\(I\)表示。公式冲量\(I\)的表达式如下:\[I=F\cdott\]由于\(F\)的单位是\(\puN\),\(t\)的单位是\(s\),所以冲量的单位是\(\pu{N*s}\)。根据表达式可知,冲量是矢量,方向与\(F\)相同。注意:冲......
  • redis学习-8(redis内存消耗、内存管理、内存优化)
    redis内存消耗内存使用统计关注used_memory_rss(操作系统)和used_memory_rss(存储数据内存占用量)和其比值。当比值>1,内存碎片<1,存在swap,redis性能下降内存消耗划分rss=自身内存+对象内存+缓冲内存+内存碎片3kb=800kb+...1.对象内存存储键值对2.缓冲内存客户端缓冲......