【Java】6 初识数组

这篇具有很好参考价值的文章主要介绍了【Java】6 初识数组。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流
目前,已开了以下专栏,欢迎关注与指导
1️⃣Java基础知识系统学习(持续更文中…)
2️⃣UML的应知应会(已更完)
3️⃣MySQL的应知应会(持续更文中…)
4️⃣算法与数据结构体系(持续更文中…)
5️⃣软考中级:软件设计师系列(持续更文中…)
还有更多文章在主页,欢迎访问爱书不爱输的程序猿

本文收录于Java基础知识系统学习专栏,次专栏是针对初学者打造,完成从0到1的跨越



数组对于每一门编程语言来说都是重要的数据结构之一,Java 语言中提供的数组是用来存储固定大小的同类型元素。
  • 数组中的每个元素具有相同的数据类型。
  • 在Java中将数组看作一个对象,虽然基本数据类型不是对象,但由基本数据类型组成的数组却是对象。
  • 在程序设计中引入数组可以更有效地管理和处理数据

1.一维数组

  • 一维数组实质上是一组相同类型数据线性集合,当在程序中需要处理一组数据,或者传递一组数据时,可以应用这种类型的数组。

1.1创建一维数组

  • 在使用数组之前,必须首先定义数组变量所属的类型
  • 声明一维数组有下列两种方式:
数组元素类型 数组名字[ ];
数组元素类型[ ] 数组名字;

数组元素类型决定了数组的数据类型,它可以是Java中任意的数据类型,包括简单类型和组合类型。
数组名字为一个合法的标识符,符号"[ ]“指明该变量是一个数组类型变量。
单个”[ ]"表示要创建的数组是一个一维数组。

1.1.1 一维数组的创建方法1
  • 1.先声明
int arr[]; 
//声明int型数组,数组中的每个元素都是int型数值
  • 声明数组不能立即访问它的任何元素,因为声明数组只是给出了数组名字和元素的数据类型
  • 想真正使用数组,还要为它分配内存空间。
  • 在为数组分配内存空间时必须指明数组的长度。
  • 2.用new关键字进行内存分配

在声明时没有分配内存空间,要使用new关键字来分配内存,然后才可以访问每个元素

//为数组分配内存空间的语法格式:
数组名字 = new 数组元素的类型[数组元素的个数];
//数组名字:被连接到数组变量的名称。
//数组元素的个数:指定数组中变量的个数,即数组的长度
  • 示例:
arr = new int[5];

以上代码表示要创建一个含有5个元素的整型数组,并且将创建的数组对象赋给引用变量arr,即通过引用变量arr来引用这个数组
【Java】6 初识数组

  • 使用new关键字为数组分配内存时,整型数组中各个元素的初始值都为0
1.1.2 一维数组的创建方法2
  • 声明的同时为数组分配内存
//数组的声明和内存的分配一起执行的语法:
数组元素的类型 数组名 = new数组元素的类型[数组元素的个数];
  • 示例:
int month[ ] = new int[12];
//创建数组month,并指定了数组长度为12

1.2初始化一维数组

  • 数组与基本数据类型一样可以进行初始化操作
  • 数组的初始化可分别初始化数组中的每个元素
  • 数组的初始化的两种方式:
//第一种初始化方式
int arr[] = new int[]{1,2,3,5,25};

//第二种初始化方式
int arr[] = {1,2,3,5,25};

数组的初始化就是包括在大括号之内用逗号分开的表达式列表。
用逗号(,)分割数组中的各个元素,系统自动为数组分配一定的空间。

  • 第一种初始化方式,将创建5个元素的数组,其元素依次为1、2、3、5、25
  • 第二种初始化方式,会创建5个元素的数组,其元素依次为1、2、3、5、25

1.3使用一维数组

1.3.1访问数组元素
  • 前数组元素的下标为从0开始。
  • 一旦创建了数组,就可以在数组中填入元素
int[] a = new int[100];
//使用一个循环填入元素
for(int i = 0;i < 100; i++)
	a[i] = i;

★不同的初始化情况
1.创建一个数字数组时,所有元素都初始化为0
2.boolean数组的元素会初始化为false。
3.对象数组的元素则初始化为一个特殊值null,表示这些元素(还)未存放任何对象。

  • 例如,String[] names = new String[10];会创建一个包含10个字符串的数组,所有字符串都为null。如果希望这个数组包含空串,必须为元素指定空串:for(int i = 0; i < 10; i++) names[i] = " " ;
1.3.2数组中元素个数
  • 获得数组中元素的个数,使用array.length
for(int i = 0;i < a.length; i++)
	System.out.println(a[i]);
1.3.3 for-each循环
  • 与java流程控制中的for-in是一回事
  • JDK 1.5 引进了一种新的循环类型,被称为 For-Each 循环或者加强型循环,它能在不使用下标的情况下遍历数组
//语法格式
for(type element: array)
{
    System.out.println(element);
}
  • 示例:
public class TestArray {
   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};
 
      // 打印所有数组元素
      for (double element: myList) {
         System.out.println(element);
      }
   }
}
1.3.4 实例
public class TestArray {
   public static void main(String[] args) {
      // 数组大小
      int size = 10;
      // 定义数组
      double[] myList = new double[size];
      myList[0] = 5.6;
      myList[1] = 4.5;
      myList[2] = 3.3;
      myList[3] = 13.2;
      myList[4] = 4.0;
      myList[5] = 34.33;
      myList[6] = 34.0;
      myList[7] = 45.45;
      myList[8] = 99.993;
      myList[9] = 11123;
      // 计算所有元素的总和
      double total = 0;
      for (int i = 0; i < size; i++) {
         total += myList[i];
      }
      System.out.println("总和为: " + total);
   }
}
  • 先声明了一个数组变量 myList,接着创建了一个包含 10 个 double 类型元素的数组,并且把它的引用赋值给 myList 变量
  • 图片描绘了数组 myList。这里 myList 数组里有 10 个 double 元素,它的下标从 0 到 9
    【Java】6 初识数组

2.二维数组

  • 二维数组可以看作是特殊的一维数组

2.1创建二维数组

  • 声明二维数组有下列两种方式:
数组元素的类型 数组名字[ ][ ];
数组元素的类型[ ][ ] 数组名字;
2.1.1 二维数组的创建方法1
  • 1.先声明
int a[][];
  • 2.第一种内存分配方式:直接为每一维分配内存空间
a = new int[2][5];
//创建了二维数组a,
//二维数组a中包括两个长度为5的一维数组

【Java】6 初识数组

  • 2.第二种内存分配方式:分别为每一维分配内存
a = new int[2][];
a[0] = new int[2];
a[1] = new int[3];

创建了二维数组a,但是只声明了a第一维的长度,也就是“行数”
第二维的长度也就是“列数”,则是为每一行单独声明的,因此创建的数组a是“不定长数组”

【Java】6 初识数组

从最高维开始,分别为每一维分配空间
【Java】6 初识数组

s[0]=new String[2] 和 s[1]=new String[3] 是为最高维分配引用空间,也就是为最高维限制其能保存数据的最长的长度,然后再为其每个数组元素单独分配空间 s0=new String(“Good”) 等操作

2.1.2 二维数组的创建方法2
  • 声明的同时为数组分配内存
int a = new int[2][4];

2.2初始化二维数组

  • 初始化语法
//初始化语法:
type arrayname[][] = {value1,value2,,valuen};
//type:数组数据类型
//arrayname:数组名称,一个合法的标识符
//value:二维数组中各元素,都代表一个一维数组
  • 初始化示例:
int myarr[][] = {{12,0},{45,10}};
//初始化二维数组后,要明确数组的下标都是从0开始
//例如,上面的代码中myarr[1][1]的值为10
  • int型二维数组是以int a[ ][ ] 来定义的,所以可以直接给a[x] [y] 赋值
//给a[1]的第2个元素赋值
a[1][1] = 20;

2.3二维数组的引用

  • 对二维数组中的每个元素,引用方式为 arrayName[index1][index2]
num[1][0];

【Java】6 初识数组文章来源地址https://www.toymoban.com/news/detail-402848.html

到了这里,关于【Java】6 初识数组的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 欢迎来到Web3.0的世界:常见的DeFi黑客攻击

    欢迎来到Web3.0的世界:常见的DeFi黑客攻击

    随着区块链技术的发展,黑客攻击一直是这个行业的一个巨大隐患。自从2020年“DeFi Summer”以来,涌现了一批知名的去中心化应用(Dapp),促使链上总锁仓量(TVL)飙升,2021年末达到巅峰,以将近1800亿美元创造历史记录。 正是因为有利可图,DeFi协议和相关应用也成为了黑客主要

    2024年02月03日
    浏览(10)
  • 欢迎来到IT时代----盘点曾经爆火全网的计算机电影

    欢迎来到IT时代----盘点曾经爆火全网的计算机电影

    计算机专业必看的几部电影,就像一场精彩的编程盛宴!《黑客帝国》让你穿越虚拟世界,感受高科技的魅力;《社交网络》揭示了互联网巨头的创业之路,《源代码》带你穿越时间解救世界,这些电影不仅带我们穿越到科技的前沿,还揭示了计算机科学背后的故事和挑战。

    2024年02月21日
    浏览(11)
  • 欢迎来到Web3.0的世界:Solidity智能合约安全漏洞分析

    欢迎来到Web3.0的世界:Solidity智能合约安全漏洞分析

    智能合约是运行在区块链网络中的一段程序,经由多方机构自动执行预先设定的逻辑,程序执行后,网络上的最终状态将不可改变。智能合约本质上是传统合约的数字版本,由去中心化的计算机网络执行,而不是由政府或银行等中央集权机构执行。智能合约程序可以用Solidi

    2024年02月03日
    浏览(12)
  • 【Java】6 初识数组

    【Java】6 初识数组

    欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 目前,已开了以下专栏,欢迎关注与指导 1️⃣Java基础知识系统学习(持续更文中…) 2️⃣UML的应知应会(已更完) 3️⃣MySQL的应知应会(持续更文中…) 4️⃣算法与数据结构体系(持续更文中…

    2023年04月08日
    浏览(4)
  • Js水几个基础知识点:数组的操作,字符串和数组之间的互转,持续补充,欢迎关注

    一、插入 / 删除元素: 我们就不从创建开始讲了,那个太基础了,js创建数组一般都直接let arr = […,…,…],有部分仁兄喜欢new Array(…, …, …),这样看起来可能高级点,结果是一样的哈。 这里我们直接来讨论插入元素: 1、在末尾插入 / 删除元素(push / pop,操作原数组)

    2024年02月09日
    浏览(30)
  • 基于Java+Vue+uniapp微信小程序博客平台设计和实现

    基于Java+Vue+uniapp微信小程序博客平台设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟 2022-2024年

    2024年02月03日
    浏览(751)
  • 【NCRE 二级Java语言程序设计01】全国计算机等级考试初识

    【NCRE 二级Java语言程序设计01】全国计算机等级考试初识

    📜 本专栏主要是分享自己备考全国计算机二级Java语言程序设计所学心得体会、所搜集的资料信息。虽然有 Java 语言相关基础,但是 Java 桌面编程、Applet 小程序编程根本没学过,因为咱不是搞这个的呀,学了它们也找不到这方面工作呀。但是对于考二级 Java 的小伙伴来说是必

    2024年02月10日
    浏览(12)
  • 校园跑腿小程序还受欢迎不?

    校园跑腿小程序还受欢迎不?

    校园跑腿小程序是如今大学生群体中越来越受欢迎的一种服务模式。它为大学生提供了一个便捷的平台,使他们能够在校园内完成各类生活事务,如购买食品、快递取送、打印复印等。这种形式的服务在过去几年里在全球范围内迅速发展,并取得了巨大的成功。下面,我将从

    2024年02月06日
    浏览(8)
  • 【从零开始写博客】数组运用:数组排序,字符串搜索和矩阵模拟(day2)

    【从零开始写博客】数组运用:数组排序,字符串搜索和矩阵模拟(day2)

    【数组】Day1 目录 代码随想录刷题60天 引例一: 排序算法 直接插入(直接排序) 冒泡排序 双指针法 快速排序(递归法) 引例二 ​编辑 滑动窗口 引例三 总结与心得 该题为leetcode上一道简单难度的题,该题需要解决的问题是对已有数组中的数据进行平方处理后排序。其中数

    2024年02月16日
    浏览(16)
  • 程序人生——Java数组和集合使用建议(2)

    程序人生——Java数组和集合使用建议(2)

    程序人生——Java数组和集合使用建议(2) 需求:要删除一个ArrayList中的20-30范围内的元素;将原列表转换为一个可变列表,然后使用subList获取到原列表20到30范围内的一个视图(View),然后清空该视图内的元素,即可在原列表中删除20到30范围内的元素 建议72:生成子列表后

    2024年03月19日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包