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

11:java学习笔记:1D array(1维数组)

11.1array是什么

array是线性排列的数据容器,用来存储一组同一类型的数据元素。数组会大量的简化一些繁杂的代码。

11.2 怎么样创建与初始化数组

11.2.1 创建一个数组

public class l1 {public static void main(String[] args) {// TODO Auto-generated method stubint [] nums = new int[5];}}

这样子,创建了一个数组,这个数组是[0,0,0,0,0,0] 因为没有任何初始化的条件,没有任何值放进去,所以它没有任何值。

11.2.2初始化数组


public class l1 {public static void main(String[] args) {// TODO Auto-generated method stubint [] nums = new int[5];nums[0] =10;nums[1]=20;nums[2]=30;}}

初步赋值,有两个方式第一个就是多步骤的,因为在数组中每一个数字都有一个下标,原来的数组是[0,0,0,0,0]那么第一个的下标是0,所以需要赋值的话,使用 nums[0]=10;那么第零个下标的数字(也就是第一个数字)就变成10,那么经过这个代码之后,数组变成了[10,20,30,0,0]了。

第二种方法,在创建的时候直接初始化

public class l1 {public static void main(String[] args) {// TODO Auto-generated method stubint [] nums = {10,20,30,40,50};}}

那么这样的话,这个数组被创建出来的时候就是10,20,30,40,50这几个数字了。

所以这个数组是这样的

下标是一个非常容易错的点。在数组中,第一个数字的下标是0!

还有其他类型的 比如说double,int 等等都是可以有数组的,所以如果是double就变成小数就行。

11.3 怎么样使用(CRUD原则)

11.3.1什么是CRUD原则

C= Create(增)

R = Read(查)

U = Update(改变/更新)

D = Delete(删)

在中文中,更多说的是 增删改查

在一维数组中呢,一般长度已经设定好了,在一开始的时候已经设定好了,所以一般不太去改变,如果想要改变,一般使用动态数组(arraylist),而不是一维数组.(当然想要改变当然也是可以的,不常用,也很麻烦,你想要改变数组长度,直接使用arraylist就行)

所以增和删在1D array中都不太常见。

11.3.1.1 改

在一个数组中 如何改变一个array的数字,其实很简单。

public class l1 {public static void main(String[] args) {// TODO Auto-generated method stubint [] nums = {10,20,30,40,50};nums[1]=25;}}

在1这个小标这里,变成了25。

那么下标为1的就改变了,(也就是第二个数字被改变了)

11.3.1.2 查
11.3.1.2.1 基本查询

基本查询,想要知道,下标为1现在到底是什么数字了,

public class l1 {public static void main(String[] args) {// TODO Auto-generated method stubint [] nums = {10,20,30,40,50};nums[1]=25;System.out.println(nums[1]);}}

那么输出是

那么输出就是25,下标为1就改成了25了。

11.3.1.2.2 长度查询

长度在一开始其实就知道了,但是如果想要知道长度,打印出来长度的话,可以使用length

public class l1 {public static void main(String[] args) {// TODO Auto-generated method stubint [] nums = {10,20,30,40,50};nums[1]=25;System.out.println(nums[1]);System.out.println(nums.length);}}

那么打印出来的结果

上面那个就是下标为1的数字,下面那个就是数组的长度

11.3.1.2.3遍历

遍历数组,是非常重要的一个代码

因为如果想要知道数字所有的数字,并且进行处理,(比较大小啊,算平均数啊 算众数啊等等)必须让数组的数字拿出来,摆在台面上,进行处理,如果直接输出,会导致有乱七八糟的东西出现

public class l1 {public static void main(String[] args) {// TODO Auto-generated method stubint [] nums = {10,20,30,40,50};nums[1]=25;System.out.println(nums[1]);System.out.println(nums);}}

输出就是

就是一个乱码,(不用理解!! [代表的是 数组 I 是int的含义说明之前的是一个int的数组 @分隔符 28a418fc指的是哈希值)

所以这个不能满足我们的想法,所以需要改变,在之前写了 说把所有数字带到台面上,这个其实是循环的结构的特性(if条件语句是分类讨论,循环语句是把所有情况一个一个放在台面上 然后处理)

for循环

public class l1 {public static void main(String[] args) {// TODO Auto-generated method stubint [] nums = {10,20,30,40,50};nums[1]=25;System.out.println(nums[1]);for(int i = 0;i< nums.length;i++) {System.out.println("nums这个列表是 " + nums[i]);}}}

那么这个就是for循环遍历了一遍列表

所以这个就打印出来了 数字 之后在题目中就可以应用了

推荐的是使用for-each增强方法(使用一个num来接住nums所有放在台面的数字 然后一一打印出来)

public class l1 {public static void main(String[] args) {// TODO Auto-generated method stubint [] nums = {10,20,30,40,50};nums[1]=25;int sum = 0;System.out.println(nums[1]);for(int i = 0;i< nums.length;i++) {System.out.println("nums这个列表是 " + nums[i]);}for(int num :nums) {System.out.println(num);sum+=num;}System.out.println(sum);}}

同样我用来方法 写了sum 和的方法。

11.4在function中的使用

array(数组)本质上是一个数据类型,和int,double,string一样的,所以在方法中涉及到其他数据类型的,数组也有

11.4.1数组作为参数

public class l1 {public static void sum(int [] nums) {int sum = 0;for(int num :nums) {System.out.println(num);sum+=num;}System.out.println(sum);}public static void main(String[] args) {// TODO Auto-generated method stubint [] nums = {10,20,30,40,50};nums[1]=25;System.out.println(nums[1]);for(int i = 0;i< nums.length;i++) {System.out.println("nums这个列表是 " + nums[i]);}sum(nums);}}

在sum()方法中带有参数,同样我使用了sum作为一个容器的方法,所以通过for-each增强来循环与加在一起,最后就是答案。

11.4.2数组作为返回值

int,double等等都能作为返回值,数组也行

public class l1 {public static void sum(int [] nums) {int sum = 0;for(int num :nums) {System.out.println(num);sum+=num;}System.out.println(sum);}public static int[] getArray() {int[] arr = {1, 2, 3, 4};return arr;}public static void main(String[] args) {// TODO Auto-generated method stubint [] nums = {10,20,30,40,50};nums[1]=25;System.out.println(nums[1]);for(int i = 0;i< nums.length;i++) {System.out.println("nums这个列表是 " + nums[i]);}sum(nums);}}

也是成立的,但之后需要使用for增强语句把数组中的数字一个一个打印出来

11.5基本的例题

11.5.1求平均数

public class l1 {public static void average(int [] nums) {int sum = 0;for(int num :nums) {System.out.println(num);sum+=num;}System.out.println(sum);System.out.println(sum/nums.length);}public static void main(String[] args) {// TODO Auto-generated method stubint [] nums = {10,20,30,40,50};nums[1]=25;System.out.println(nums[1]);for(int i = 0;i< nums.length;i++) {System.out.println("nums这个列表是 " + nums[i]);}average(nums);}}

在方法中直接可以写,for增强循环之后,sum/nums.length(这个就是nums中有多少数字)所以除出来就是平均数

11.5.2 求最大值

本质上使用车轮战术就行,max定义为最小值,然后一一去对比

public class l1 {public static void average(int [] nums) {int sum = 0;for(int num :nums) {System.out.println(num);sum+=num;}System.out.println(sum);System.out.println(sum/nums.length);}public static void max(int [] nums) {int max = Integer.MIN_VALUE;for(int num : nums) {if(num>max) {max = num;}}System.out.println(max);}public static void main(String[] args) {// TODO Auto-generated method stubint [] nums = {10,20,30,40,50};nums[1]=25;System.out.println(nums[1]);for(int i = 0;i< nums.length;i++) {System.out.println("nums这个列表是 " + nums[i]);}average(nums);max(nums);}}

结果就是

http://www.dtcms.com/a/311835.html

相关文章:

  • Windows下定位Mingw编译的Qt程序崩溃堆栈
  • Python科研数据可视化技术
  • 2025年常见网络安全问题及针对性预防措施
  • 小迪23年-22~27——php简单回顾(2)
  • pytorch的 Size[3] 和 Size[3,1] 区别
  • 动态规划Day7学习心得
  • 深入理解Linux线程:从概念到控制的最佳实践
  • jenkins从入门到精通-P1—九五小庞
  • Python编程基础与实践:Python函数编程入门
  • 基于Redis自动过期的流处理暂停机制
  • day38 力扣279.完全平方数 力扣322. 零钱兑换 力扣139.单词拆分
  • 位运算-371.两整数之和-力扣(LeetCode)
  • 2 安装 Docker 和 Jenkins:持续构建环境起步
  • Chisel芯片开发入门系列 -- 17. CPU芯片开发和解释7(5级流水线指令原理)
  • 洛谷 P3372 【模板】线段树 1-普及+/提高
  • 【AI学习】RadioDiff:代码学习
  • Paper Reading《TrafficFormer: An Efficient Pre-trained Model for Traffic Data》
  • 【MQ】kafka同步和异步的区别
  • Windows中使用Qwen模型:VSCode+Cline
  • 64GB U盘实际显示容量为57.2GB的原因解析
  • innoDB的buffer pool
  • Wasatch SoftRIP数码打印 印花软件
  • 谷歌开源Agent框架ADK快速入门
  • 深入理解 Go 语言中 Map 的底层原理
  • Python爬虫实战:研究SimpleCV技术,构建图像获取及处理系统
  • Apache Doris数据库——大数据技术
  • 【LeetCode刷题指南】--二叉树的前序遍历,二叉树的中序遍历
  • MCP Agent 工程框架Dify初探
  • pytorch简单理解
  • 我的世界之战争星球 暮色苍茫篇 第二十六章、身世