day04-数组

Java数组

  • [ 任务列表 ]
  • 1.数组
  • 2.二维数组
  • 3.其他

—————————————————————————————————————————————————————————

1.数组

  • 数组:存储批量数据。除此之外还有,二维数组,对象,集合……

  • 数组使用的原因:
    用变量存储批量数据,代码会非常臃肿;
    对于类型相同的大批量数据,使用数组存储,明显优于用多个变量进行存储。

  • 静态初始化:

// 1>. 定义一个数组,用来存储5个学生的姓名
// 静态初始化一个数组:定义数组的时候,数据已经确定好了
String names [] = new String[] {"张三","李四","王五","赵六","孙七"};
  • 数组是一个数据容器,用来存储一批同类型的数据。
    数组的访问,为数组某个位置赋值,获取数组的长度(元素个数)

  • 数组的动态初始化:

// 1). 需要一个数组来存储8名同学的成绩
// 动态初始化数组,只确定数组的类型和存储数据的容量
// 数据类型 [] 数组名 = new 数据类型 [数组容量];
double [] scores = new double [8];
//        scores = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0];
//                   0    1    2    3    4    5    6    7Scanner sc = new Scanner(System.in);// 2). 录入8个同学的java成绩,并把成绩存入数组中
for (int i = 0; i < scores.length; i++) {System.out.println("请输入第" + (i + 1) + "个同学的java成绩:");scores[i] = sc.nextDouble();
}
  • 一维数组的随机访问:
// 2>. 随机获取一个索引值
// Math.random()  :   [0 - 1)
// names.length : 是数组长度,即元素个数 15
// Math.random() * names.length : [0 - 15)   =====>    [0, 14]
int index = (int)(Math.random() * names.length);// 3>. 打印数组中的元素
System.out.println("总共有" + names.length +"个学生,随机抽一个同学是:" + names[index]);
System.out.println(names);

2.二维数组

  • 二维数组运用:桌面类型游戏的开发——塔牌游戏。

  • 静态初始化:

// 数据类型 [] [] 数组名  = new 数据类型 [] [] { { },{ },{ }...}
//                    其中 new 数据类型 [] [] 可以省略
String [][] classmates = {{"张无忌", "赵敏","周芷若"},{"张三丰", "宋远桥", "殷梨亭"},{"灭绝师太", "陈坤","玄冥二老","金毛狮王"},{"杨逍", "纪晓芙"}
};
  • 动态初始化:
// 数据类型 [ ] [ ] 数组名  = new 数据类型 [长度1] [长度2]
// 动态初始化数组
int [][] arr = new int [3][5];
  • 随机的思路:(假设数组中有n个数据)
    思路一:遍历数组,每次从数组中随机一个位置,然后将当前位置的数和随机位置交换;
    思路二:遍历n次,每次随机两个位置出来,将两个位置的数交换。
// 思路一:
for (int i = 0; i < poker.length; i++) {int index = (int)(Math.random() * 54);  // =====> 0 ~ 53// 每次随机一个位置,将两个位置的数交换String temp = poker[i];poker[i] = poker[index];poker[index] = temp;
}// 思路二:
for (int i = 0; i < poker.length; i++) {int index1 = (int)(Math.random() * 54);  // =====> 0 ~ 53int index2 = (int)(Math.random() * 54);  // =====> 0 ~ 53// 每次随机两个位置,将两个位置的数交换String temp = poker[index1];poker[index1] = poker[index2];poker[index2] = temp;
}

3.其他

  • 动态初始化数组元素默认值
    基本类型:
    byte、short、char、int、long =====> 0
    float、double =====> 0.0
    boolean =====> false
    引用类型:
    类、接口、数组、String =====>null

  • 求最值代码的优化:
    找数组比较浪费性能,所以多用变量进行代码运算,少用数组参与运算

// 遍历数组,统计总分,统计最高分,统计最低分,算平均成绩
// 找最值代码的优化:找数组比较浪费性能
public static void FindMaxAndMin(double scores []) {double grade = scores[0];   // 优化一double allScore = grade ;double max = grade ;double min = grade ;// 从数组的第二个位置开始遍历for (int i = 1; i < scores.length; i++) {// 通过一个变量,把当前遍历到的这个分数保存起来,只需要找一次数组double score = scores[i];   // 优化二if (score > max) {max = score;}if (score < min) {min = score;}allScore += score;}System.out.println("总分:" + allScore);System.out.println("平均分:" + allScore / scores.length);System.out.println("最高分:" + max);System.out.println("最低分:" + min);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/876308.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库服务器 SQL Server 版本升级公告

祝大家春节快乐 !在明天(1月28日)的辞旧迎新之际,我们也安排了对园子的数据库服务器进行一次辞旧迎新,从 SQL Server 2016 升级至 SQL Server 2022。 我们使用的是阿里云 RDS 云数据库服务,升级将会由 RDS 自动完成,但在升级过程中的切换阶段会造成有段时间不能正常访问…

两种方式让你用Python轻松在RDKX5上部署推理

作者:SkyXZ CSDN:SkyXZ~-CSDN博客 博客园:SkyXZ - 博客园 宿主机环境:WSL2-Ubuntu22.04+Cuda12.6、D-Robotics-OE 1.2.8、Ubuntu20.04 GPU Docker 端侧设备环境:RDK X5-Server-3.1.0 2025年随着RDK X5的发布,地瓜官方随之也开放了RDK系列DNN推理部署的Python版的…

01. 初识Linux系统

一、什么是Ubuntu系统Ubuntu 操作系统是属于 Linux 操作系统中的一种,它是免费、稳定又可以拥有绚丽界面的一个操作系统。Linux,一般指 GNU/Linux(单独的 Linux 内核并不可直接使用,一般搭配 GNU 套件,故得此称呼),是一种免费使用和自由传播的类 UNIX 操作系统,其内核由…

学习elemetnPlus

学习了elementplus 学习了一个小时 其实就是查文档 做前端

20221320冯泰瑞-实验四密码模块应用实践过程记录

20221320冯泰瑞-实验四密码模块应用实践过程记录 实践要求完成电子公文交换系统,系统功能,(15 分)mindmaproot((电子公文系统))发文公文起草公文查看发文审核(审核员)公文发送公文查询收文公文签收公文查看公文处理公文查询系统管理组织单位用户管理操作员(科员)审核员…

android抓包相关操作指令

adb start-server adb connect 127.0.0.1:16384 adb rootadb shell su # 如果需要root权限mount -o remount,rw /systemadb push D:\\文档\\sixdu文档\\269953fb.0 /data/local/tmp adb push D:\\文档\\sixdu文档\\43b5e6bf.0 /data/local/tmpadb -s emulator-5554 push D:\\文…

四.1 Redis 五大数据类型/结构的详细说明/详细使用(List 列表数据类型详解和使用)

四.1 Redis 五大数据类型/结构的详细说明/详细使用(List 列表数据类型详解和使用) @目录四.1 Redis 五大数据类型/结构的详细说明/详细使用(List 列表数据类型详解和使用)2. list 列表常用指令(详细讲解说明)2.1 lpush/rpush <key><value1><value2>&l…

DeepSeek入门教程

一、简介 DeepSeek-V3 是一款高性能的开源 AI 模型,支持自然语言处理、智能对话生成等任务。其 API 接口与 OpenAI 完全兼容,用户可以通过简单的配置迁移现有项目,同时享受更低的成本和更高的性能。本文档将详细介绍如何快速接入 DeepSeek-V3 API 二、注册与API Key获取 1.注…

Archlinux 玩原神

首先你需要一台装载了archlinux的电脑,配置的话本人:Lenovo TianYi510S-07IMB Intel Core™ i5-10400 12 内存 8.0 GiB 磁盘 1 TB 玩的挺舒服的不会安装arch或者wine的看这里 然后本人是国际服Genshin Impact,国服同理(把下文的Genshin Impact当作yuanshen),参照官网安装…

C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。欢迎投稿、推荐或自荐优质文章、项目、学习资源等…

JQuery实现轮播图

一、html代码<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </he…

e语言 超级编辑框

本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/18692666