当前位置: 首页 > news >正文

wordpress 好用主题/seo排名资源

wordpress 好用主题,seo排名资源,wordpress 分类插件,自己做网站哪种好做数组 概述数组定义实例展示实战演练 二维数组定义数组元素的使用数组初始化器实战演练:矩阵计算 💫不规则二维数组实战演练:杨辉三角形 概述 ⚡️数组是相同数据类型的元素集合。各元素是有先后顺序的,它们在内存中按照这个先后顺…

数组

  • 概述
    • 数组定义
    • 实例展示
    • 实战演练
  • 二维数组定义
  • 数组元素的使用
  • 数组初始化器
    • 实战演练:矩阵计算
  • 💫不规则二维数组
    • 实战演练:杨辉三角形

概述

⚡️数组是相同数据类型的元素集合。各元素是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起
⚡️Java中,数组元素可以为基本数据类型,也可以为引用数据类型(对象)。
⚡️数组可分为一维数组和多维数组。

数组定义

使用数组一般需要三个步骤:
1)声明数组:声明数组名称和元素的数据类型。
2)创建数组:为数组元素分配存储空间。
3)使用数组:对数组元素操作。
1、声明数组(一维数组)
使用数组之前需要声明数组,声明数组就是告诉编译器数组类型和数组名:
在这里插入图片描述
【注】声明数组仅仅是声名一个数组对象的引用,声明数组时不为数组元素分配内存,因此, [ ]中不需给出元素的个数

: double  []marks;String  []words;

2、创建数组
创建数组是为数组的每个元素分配存储空间,使用new语句,格式如下:
数组名 = new 数据类型 [个数]; //动态分配内存给数组

: marks = new double[5];words = new String[3];

数组声明和创建可以写在一个语句中:
数据类型 [ ]数组名 = new 数据类型 [个数];

: double  []marks= new double[5];String  []words = new String[3]; 

当数组被成功创建后,数组中元素会被自动赋予一个默认值, 根据元素类型的不同,默认初始化的值也是不一样的。
在这里插入图片描述

double []marks;
marks = new double[5];marks[0] = 79;marks[1] = 84.5;marks[2] = 63;marks[3] = 90;marks[4] = 98;

在这里插入图片描述
3、访问数组元素
定义了一个数组,并用运算符new为它分配了内存空间后,就可以引用数组中的每一个元素了。
数组元素的使用方式是:
   arrayName [index]
   数组名     下标⚠️(下标从0到arrayName.length-1)
数组作为对象提供了一个length成员变量,它表示数组元素个数,访问该成员变量的方法为:
        arrayName.length

实例展示

package shujia_test1;public class Csdn5_1 {public static void main(String[] args) {double[] marks = new double[5];marks[0] = 79;marks[1] = 84.5;marks[2] = 63;marks[3] = 90;marks[4] = 98;System.out.println(marks[2]);System.out.println(marks.length);// 输出每个元素值for (int i = 0; i < marks.length; i++) {System.out.print(marks[i] + "  ");}}}

运行结果:
在这里插入图片描述
注:Java运行时系统要对数组元素的范围进行越界检查
4、数组初始化器
在声明数组的同时利用初始化器对数组元素初始化,它是在一对大括号中给出数组的每个元素值。

double[] marks = new double[]{79, 84.5, 63,90, 98};
String[] words = new String[]{"Java", " is", "cool" };

简单形式:数据类型 []数组名={初值0,初值1,…,初值n};

    double[] marks = {79, 84.5, 63, 90, 98};String[] words = {"Java", "is", "cool"};

重点注意: 这种方法创建数组不能指定大小,系统根据元素个数确定大小
int [5]arr = {2,4,6,8,4};在这里插入图片描述

//非法,系统自动统计数据个数,不可指定长度。
🚩在Java中,创建数组时通常需要指定数组的大小(即数组中元素的数量)。这是因为Java中的数组是静态的,一旦创建,其大小就不能改变。这意味着你必须在声明数组时就指定其能够存储的元素数量。

实战演练

编写程序,要求用户从键盘输入5个整数,并存放到一个数组中,然后计算所有元素的和、最大值、最小值、平均值。

package shujia_test1;import java.util.Scanner;public class Csdn5_2 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 创建一个数组来存储输入的整数int[] numbers = new int[5];// 提示用户输入5个整数,并将它们存储在数组中System.out.println("请输入5个整数:");for (int i = 0; i < numbers.length; i++) {numbers[i] = scanner.nextInt();}// 初始化和变量来存储总和、最大值、最小值int sum = 0;int max = numbers[0];int min = numbers[0];// 遍历数组,计算总和、最大值、最小值for (int number : numbers) {sum += number;if (number > max) {max = number;}if (number < min) {min = number;}}// 计算平均值double average = (double) sum / numbers.length;// 输出结果System.out.println("总和为:" + sum);System.out.println("最大值为:" + max);System.out.println("最小值为:" + min);System.out.printf("平均值为:%.2f%n", average);// 关闭scannerscanner.close();}}

运行结果:
在这里插入图片描述

二维数组定义

1、二维数组声明

elementType[][] arrayName;
数据类型 [][]  数组名;

或:

elementType arrayName[][];
elementType[] arrayName[];

2、二维数组创建

arrayName = new elementType[row][col];
arrayName = new elementType[row][]; //适用不规则二维数组

例:int [][]matrix = new int[2][3];

二维数组创建后,每个元素被指定为默认值0
在这里插入图片描述

数组元素的使用

访问二维数组元素,形式如下:
arrayName[index1][index2]
数组名 第1维下标 第2维下标
matrix.length得到matrix数组的大小
matrix[0].length得到matrix[0]数组的大小

package shujia_test1;public class Csdn5_3 {public static void main(String[] args) {int array[][] = new int[2][3];System.out.println(array.length);System.out.println(array[0].length);}
}

结果:
在这里插入图片描述

例:
int [][]matrix = new int[2][3];
matrix[0][0] = 80;
matrix[0][1] = 75;
matrix[0][2] = 78;
matrix[1][0] = 67;
matrix[1][1] = 87;
matrix[1][2] = 98;
System.out.println(matrix[1][2]);  
// 98
for ( int i=0; i < matrix.length; i++ ){for ( int j=0; j < matrix[0].length; j++ ){System.out.print(matrix[i][j] +" ");}System.out.println();//换行
}
结果:80  75  78 67  87  98 

访问二维数组时,下标也不能超出范围,否则抛出异常。

数组初始化器

初始化器在声明数组的同时为数组元素初始化
   int[][] matrix = {{15,56,20,-2},
            {10,80,-9,31},
            {76,-3,99,21}};
这种方法创建二维数组不能指定大小,系统根据元素个数确定大小
int[3][4] 在这里插入图片描述
matrix = {{15,56,20,-2}, {10,80,-9,31}, {76,-3,99,21}};
matrix.length值为3,
matrix[1].length值为4

实战演练:矩阵计算

编写程序,计算A+B、A-B和矩阵A的转置(矩阵的行和列互换)。
在这里插入图片描述

package shujia_test1;public class Csdn5_4 {public static void main(String[] args) {// 定义矩阵A和Bint[][] A = { { 1, 3, 5 }, { -3, 6, 0 }, { 13, -5, 7 }, { -2, 19, 25 } };int[][] B = { { 0, -1, -2 }, { 7, -1, 6 }, { -6, 13, 2 }, { 12, -8, -13} };// 计算A+Bint[][] APlusB = addMatrices(A, B);printMatrix("A + B =", APlusB);// 计算A-Bint[][] AMinusB = subtractMatrices(A, B);printMatrix("A - B =", AMinusB);// 计算A的转置int[][] transposeA = transposeMatrix(A);printMatrix("Transpose of A =", transposeA);}// 计算两个矩阵的和public static int[][] addMatrices(int[][] A, int[][] B) {int rowsA = A.length;int colsA = A[0].length;int rowsB = B.length;int colsB = B[0].length;int rows = Math.min(rowsA, rowsB);int cols = Math.min(colsA, colsB);int[][] result = new int[rows][cols];for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {result[i][j] = A[i][j] + B[i][j];}}return result;}// 计算两个矩阵的差public static int[][] subtractMatrices(int[][] A, int[][] B) {int rows = Math.min(A.length, B.length);int cols = Math.min(A[0].length, B[0].length);int[][] result = new int[rows][cols];for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {result[i][j] = A[i][j] - B[i][j];}}return result;}// 计算矩阵的转置public static int[][] transposeMatrix(int[][] A) {int rows = A.length;int cols = A[0].length;int[][] result = new int[cols][rows];for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {result[j][i] = A[i][j];}}return result;}// 打印矩阵public static void printMatrix(String title, int[][] matrix) {System.out.println(title);for (int[] row : matrix) {for (int num : row) {System.out.print(num + " ");}System.out.println();}}
}

运行结果:
在这里插入图片描述

💫不规则二维数组

C语言中定义的数组必须是一个m*n的矩阵,而Java语言的二维数组不一定是规则的矩形。
在这里插入图片描述
对二维数组声明时可以只指定第一维的大小,第二维的每个元素可以指定不同的大小。

: 
String [][]cities = new String[2][]; 
cities[0] = new String[3];
cities[1] = new String[2];
cities[0][0] = new String("北京");
cities[0][1] = new String("上海");
cities[0][2] = new String("广州");  
cities[1][0] = new String("伦敦");
cities[1][1] = new String("纽约");

在这里插入图片描述

实战演练:杨辉三角形

例: 编写程序输出杨辉三角形的前10行。

package shujia_test1;public class Csdn5_5 {public static void main(String[] args) {int i, j;int level = 10;int triangle[][] = new int[level][];for (i = 0; i < triangle.length; i++)triangle[i] = new int[i + 1];// 为triangle数组的每个元素赋值triangle[0][0] = 1;for (i = 1; i < triangle.length; i++) {triangle[i][0] = 1;for (j = 1; j < triangle[i].length - 1; j++)triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];triangle[i][triangle[i].length - 1] = 1;}// 打印输出triangle数组的每个元素for (i = 0; i < triangle.length; i++) {for (j = 0; j < triangle[i].length; j++)System.out.print(triangle[i][j] + " ");System.out.println(); // 换行}}}

运行结果:
在这里插入图片描述
讲解:二维数组可以被看作是一个数组的数组,也就是说,它是一个数组的集合,其中每个元素本身又是一个数组。这些内部数组通常具有相同的长度(尽管在Java中这不是强制性的,但在处理像杨辉三角形这样的结构时,我们通常会保持每行长度递增的模式),但它们各自独立,分别代表二维数组中的一行。从逻辑上讲,你可以将二维数组视为由多个一维数组(行)组成的集合,每个一维数组都包含了一定数量的元素(列)。这种理解方式有助于我们编写代码来遍历和操作二维数组中的元素。在遍历二维数组时,我们通常首先遍历外层数组(即行),然后对于每一行,我们再遍历该行的内部数组(即列)。这就是在上面的杨辉三角形示例中所做的。
博主用心写,读者点关注,互动传真情,知识不迷路

相关文章:

Java语言程序设计——篇五(1)

数组 概述数组定义实例展示实战演练 二维数组定义数组元素的使用数组初始化器实战演练&#xff1a;矩阵计算 &#x1f4ab;不规则二维数组实战演练&#xff1a;杨辉三角形 概述 ⚡️数组是相同数据类型的元素集合。各元素是有先后顺序的&#xff0c;它们在内存中按照这个先后顺…...

【香橙派开发板测试】:在黑科技Orange Pi AIpro部署YOLOv8深度学习纤维分割检测模型

文章目录 &#x1f680;&#x1f680;&#x1f680;前言一、1️⃣ Orange Pi AIpro开发板相关介绍1.1 &#x1f393; 核心配置1.2 ✨开发板接口详情图1.3 ⭐️开箱展示 二、2️⃣配置开发板详细教程2.1 &#x1f393; 烧录镜像系统2.2 ✨配置网络2.3 ⭐️使用SSH连接主板 三、…...

集成学习在数学建模中的应用

集成学习在数学建模中的应用 一、集成学习概述&#xff08;一&#xff09;基知&#xff08;二&#xff09;相关术语&#xff08;三&#xff09;集成学习为何能提高性能&#xff1f;&#xff08;四&#xff09;集成学习方法 二、Bagging方法&#xff08;一&#xff09;装袋&…...

WebKit 的 Web SQL 数据库:现代浏览器的本地存储解决方案

WebKit 的 Web SQL 数据库&#xff1a;现代浏览器的本地存储解决方案 随着Web应用的不断发展&#xff0c;对本地存储的需求也日益增加。WebKit作为许多现代浏览器的核心引擎&#xff0c;提供了一种强大的本地存储解决方案&#xff1a;Web SQL 数据库。本文将详细探讨Web SQL 数…...

Yolo-World网络模型结构及原理分析(三)——RepVL-PAN

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言1. 网络结构2. 特征融合3. 文本引导&#xff08;Text-guided&#xff09;4. 图像池化注意力&#xff08;Image-Pooling Attention&#xff09;5. 区域文本匹配&…...

代码随想录——一和零(Leetcode474)

题目链接 0-1背包 class Solution {public int findMaxForm(String[] strs, int m, int n) {// 本题m&#xff0c;n为背包两个维度// dp[i][j]:最多右i个0和j个1的strs的最大子集大小int[][] dp new int[m 1][n 1];// 遍历strs中字符串for(String str : strs){int num0 …...

力扣题解(组合总和IV)

377. 组合总和 Ⅳ 给你一个由 不同 整数组成的数组 nums &#xff0c;和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 思路&#xff1a; 本题实质上是给一些数字&#xff0c;让他们在满足和是targ…...

Postgresql主键自增的方法

Postgresql主键自增的方法 一.方法&#xff08;一&#xff09; 使用 serial PRIMARY KEY 插入数据 二.方法&#xff08;二&#xff09; &#x1f388;边走、边悟&#x1f388;迟早会好 一.方法&#xff08;一&#xff09; 使用 serial PRIMARY KEY 建表语句如下&#xf…...

【源码阅读】Sony的go breaker熔断器源码探究

文章目录 背景源码分析总结 背景 在微服务时代&#xff0c;服务和服务之间调用、跨部门调用都是很常见的事&#xff0c;但这些调用都存在很多不确定因素&#xff0c;如核心服务A依赖的部门B服务挂掉了&#xff0c;那么A本身的功能将会受到直接的影响&#xff0c;而这些都会影响…...

LeetCode题(66,69,35,88)--《c++》

66.加一 // // Created by wxj05 on 2024/7/20. // //法一 class Solution { public:vector<int> plusOne(vector<int>& digits) {bool carry true; // 进位标志for (int i digits.size() - 1; i > 0 && carry; --i) {digits[i] 1;carry digit…...

来参与“向日葵杯”全国教育仿真技术大赛~

可点击进行了解&#xff1a;“向日葵杯”全国教育仿真技术大赛 (sunmooc.cn) 本次大赛共分为四个赛道&#xff1a;自主命题赛道、教育知识图谱设计赛道、FPGA硬件扑克牌对抗赛道、EasyAR元宇宙空间设计赛道。 参赛对象 &#xff1a; 具有正式学籍的在校研究生&#xff0c;本科…...

SQL每日一题:删除重复电子邮箱

题干 表: Person -------------------- | Column Name | Type | -------------------- | id | int | | email | varchar | -------------------- id 是该表的主键列(具有唯一值的列)。 该表的每一行包含一封电子邮件。电子邮件将不包含大写字母。 编写解决方案 删除 所有重复…...

3、宠物商店智能合约实战(truffle智能合约项目实战)

3、宠物商店智能合约实战&#xff08;truffle智能合约项目实战&#xff09; 1-宠物商店环境搭建、运行2-webjs与宠物逻辑实现3-领养智能合约初始化4-宠物领养实现5-更新宠物领养状态 1-宠物商店环境搭建、运行 https://www.trufflesuite.com/boxes/pet-shop 这个还是不行 或者…...

数据库系列

目录 一、数据库的概念和作用 1.数据库的特点 2.数据模型 二、数据库系统 1.数据库管理系统 2.数据库的基本操作 一、数据库的概念和作用 数据库是指长期存储在计算机内&#xff0c;有组织的、可共享的数据集合。它可视为一个电子化的文件柜&#xff0c;用来存储电子文件…...

极狐GitLab如何启用和配置PlantUML?

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab &#xff1a;https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署…...

Shell 构建flutter + Android 生成Apk

具体步骤 #shell 具体实现和说明如下: echo "build_start_apk!" echo "编译此脚本的前提条件如下:" #在Android 项目的主工程下,进入主工程文件夹,创建build-android 文件夹,在其文件夹下有build-android.sh文件,此文件就是整个文章的脚本内容(…...

如何用手机压缩视频?手机压缩视频方法来了

高清视频的大文件大小常常成为分享和存储的障碍&#xff0c;尤其是在数据流量有限或存储空间紧张的情况下。幸运的是&#xff0c;无论是智能手机还是个人电脑&#xff0c;都有多种方法可以帮助我们轻松压缩视频文件&#xff0c;以适应不同的需求和情境。本文将介绍如何在手机上…...

Linux下如何安装配置Elastic Stack日志收集系统

安装和配置Elastic Stack日志收集系统&#xff0c;包括Elasticsearch、Logstash和Kibana&#xff0c;是一个相对复杂的过程。本篇文章将逐步引导您完成整个过程。 安装Java Elasticsearch、Logstash和Kibana都需要Java运行环境。首先&#xff0c;您需要在Linux系统上安装Java…...

【深入C++】map和set的使用

文章目录 C 中的容器分类1. 顺序容器2. 关联容器3. 无序容器4. 容器适配器5. 字符串容器6. 特殊容器 set1.构造函数2.迭代器3.容量相关的成员函数4.修改器类的成员函数5.容器相关操作的成员函数 multiset1.equal_range map1.初始化相关的函数2.迭代器3.容量相关的成员函数4.访问…...

跟代码执行流程,读Megatron源码(二)训练入口pretrain_gpt.py

Megatron-LM默认支持GPT、T5、BERT等多个常见模型的预训练&#xff0c;当下大模型流行&#xff0c;故以pretrain_gpt.py为例做源码的走读。 一. 启动pretrain_gpt.py pretrain_gpt.py为GPT类模型的训练入口&#xff0c;它通过命令行形式被调用&#xff0c;其精确执行路径位于M…...

MATLAB练习题——矩阵(2)

逻辑运算 a [5 0.2 0 -8 -0.7 ]&#xff0c;在进行逻辑运算时&#xff0c;a 相当于什么样的逻辑量。 相当于 a[1 1 0 1 1] 角度运算 在 sin(x)运算中&#xff0c;x 是角度还是弧度&#xff1f; 在 sin(x)运算中&#xff0c;x 是弧度&#xff0c;MATLAB 规定所有…...

arm、AArch64、x86、amd64、x86_64 的区别

arm vs AArch64 vs amd64 vs x86_64 vs x86 的区别 当涉及到 CPU 的时候&#xff0c;有许多术语&#xff1a;AArch64、x86_64、amd64、arm 等等。了解它们是什么以及它们之间的区别。 当你查看数据表或软件下载页面时是否被 ARM、AArch64、x86_64、i386 等术语混淆&#xff1f;…...

【SpringBoot】 jasypt配置文件密码加解密

目前我们对yml配置文件中的密码都是明文显示&#xff0c;显然这不安全&#xff0c;有的程序员离职了以后可能会做一些非法骚操作&#xff0c;所以我们最好要做一个加密&#xff0c;只能让领导架构师或者技术经理知道这个密码。所以这节课就需要来实现一下。 我们可以使用jasypt…...

复杂网络的任意子节点的网络最短距离

复杂网络的任意子节点的网络最短距离 题目要求介绍 本文算法测试用的数据集为空手道俱乐部&#xff0c;其中空手道俱乐部的数据集可通过这个链接进行下载•http://vlado.fmf.uni-lj.si/pub/networks/data/Ucinet/UciData.htm#zachary 摘要 本文旨在解决复杂网络中任意子节点…...

(Qt) 文件读写基础

文章目录 &#x1f5c2;️前言&#x1f4c4;ref&#x1f4c4;访问标记&#x1f5c3;️enum 标记 &#x1f5c2;️Code&#x1f4c4;demo&#x1f4c4;分点讲解&#x1f5c3;️继承体系&#x1f5c3;️打开/关闭&#x1f5c3;️写&#x1f5c3;️读 &#x1f5c2;️END&#x1f…...

全产业布局对穿戴甲品牌连锁店的意义

对于美甲行业来说&#xff0c;穿戴甲虽然不是什么新生事物&#xff0c;但也就是近两年才流行开来。面对井喷的市场需求&#xff0c;相应的从业者&#xff0c;不管是品牌连锁店&#xff0c;还是做批发、外贸&#xff0c;美甲周边、亦或是OEM的&#xff0c;大家都忙得不亦乐乎&am…...

git的一些使用技巧(git fetch 和 git pull的区别,git merge 和 git rebase的区别)

最近闲来无聊&#xff0c;虽然会使用git操作&#xff0c;但是 git fetch 和 git pull 的区别&#xff0c;git merge 和 git rebase的区别只是一知半解&#xff0c;稍微研究一下&#xff1b; git fetch 和 git pull 的区别 git fetch git fetch 是将远程仓库中的改动拉到本地…...

展厅中控系统有哪些优势呢

格芬科技的展厅中控系统具有多方面的优势&#xff0c;主要体现在以下几个方面&#xff1a; 一、高度集成与灵活控制 全终端网络可编程&#xff1a;格芬科技的展厅中控系统采用全终端网络可编程技术&#xff0c;能够实现对展厅内各种设备的集中控制和管理&#xff0c;包括电脑…...

FPGA开发在verilog中关于阻塞和非阻塞赋值的区别

一、概念 阻塞赋值&#xff1a;阻塞赋值的赋值号用“”表示&#xff0c;对应的是串行执行。 对应的电路结构往往与触发沿没有关系&#xff0c;只与输入电平的变化有关系。阻塞赋值的操作可以认为是只有一个步骤的操作&#xff0c;即计算赋值号右边的语句并更新赋值号左边的语句…...

动态特征转换的艺术:在Mojo模型中实现自定义变换的策略

动态特征转换的艺术&#xff1a;在Mojo模型中实现自定义变换的策略 在机器学习中&#xff0c;特征转换是数据预处理的关键步骤&#xff0c;它直接影响模型的性能和结果的准确性。Mojo模型&#xff0c;作为一种高效的模型部署形式&#xff0c;允许在不同环境中运行模型并进行预…...