数组

概念

在Java中,数组是一种用于存储多个相同类型元素的数据结构。数组在内存中是连续存储的,每个元素在数组中都有一个唯一的索引,可以通过索引来访问数组中的元素

  • 数组是一组相同数据类型元素的集合,是一个容器
  • 数组本身时引用数据类型,是一个对象
  • 数组可以存储基本数据类型,也可以存储引用数据类型
  • 数组创建时必须指定长度,且长度不可变
  • 数组中每个元素是连续的

如何创建数组

数组声明的两种方法

1. 数据类型 [] 数组名字;eg:int [] a;

2. 数据类型 数组的名字 []; eg:int a []

注:建议使用第一种

数组创建

​ 创建一个容量为5的数组:

import java.util.Arrays;//声明这个包后就可以使用Arrays这个类的方法

public class ArrayPractice {
public static void main(String[] args) {
int [] a = new int[5];
System.out.println(a);//输出的是存储数组元素的内存首地址
System.out.println(Arrays.toString(a));//直接遍历出来[0, 0, 0, 0, 0]
//创建数组时,值是已知的,直接进行赋值,就不需要指定长度
int [] c = new int[]{1,2,3,4,5,6,7};
//简化版
int [] d = {1,2,3,4,5,6,7};
}
}

数组的访问与迭代

  • 数组元素的访问:
数组名[索引] 例如:a[0],a[1];
  • 注意
数组的索引从0开始。
索引的数据类型是整数(int)
索引最大值和数组长度始终差1
  • 获取数组名长度
数组名.length
  • 数组元素的遍历

1.for循环

for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}

2.增强for循环

for(元素类型 临时变量:遍历的数组){
临时变量
}
for(int t : a){
System.out.println(t);
}

二维数组

定义:

数组的数组,二维数组的每一个元素是一个一维数组

数组的声明

int[][]a;
int a[][];

注:最好使用第一种声明方式,不容易混淆a的数据类型

数组创建(会自动进行初始换为0)

int [][]a = new int [][]{{1,2,3},{1,2,3},{1,2,3}};
int [][]a = {{1,2,3},{1,2,3},{1,2,3}};
int [][]a = new int[3][5];//定义了一个整型的二维数组 ,这个二维数组有3个一维数组,每一个一维数组包含5个元素
int [][]a = new int [3][]//表示每一个一维数组为null,即没有创建;
a[0]=new int[4];
a[1]=new int[5];
a[2]=new int[4];//对二维数组中的一维数组创建和初始化;

数组遍历

双层循环遍历

eg:
int[][]a = {{1,2,3,3},{4,5,6,4},{7,8,9,5}};
//循环二维数组 从二维数组中每次取出一个一维数组
for(int i=0;i<a.length;i++){
//遍历每一个一维数组
for(int j=0;j<a[i].length;j++){
//遍历一维数组
System.out.print(a[i][j]+" ");
}
System.out.println();
}

JavaSE数组的更多相关文章

  1. JavaSE| 数组

    1.数组(array) 数组就是多个相同类型数据的组合,实现对这些数据的统一管理. 数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型.数组属引用类型,数组型数据是对象(object),每 ...

  2. [javaSE] 数组(查找-二分查找)

    前提数组必须是有序的 定义最小,最大,中间的角标索引 int min,max,mid; min=0; max=arr.length-1; mid=(min+max)/2; 上面的索引需要变化,使用循环 ...

  3. [javaSE] 数组(获取最值)

    数组的常见操作(获取最值) 1.获取最值需要进行比较,每一次比较都会有一个较大的值,因为该值不确定,通过一个变量进行存储 2.让数组中的每一个元素都和这个变量中的值进行比较,如果大于了变量中的值,就用 ...

  4. 学习JavaSE 数组

    一维数组 基本概念 1.数组中只允许放同一种类型(可以是父子关系). 2.数组即对象. 例: int[ ] arrs={0,1,2};//arrs即一个对象. 3.数组是定长的,不可以增加或者减少. ...

  5. [javaSE] 数组(排序-冒泡排序)

    两层嵌套循环,外层控制循环次数,内层循环进行比较 for(int x=0;x<arr.length-1;x++){ for(int y=0;y<arr.length;y++){ if(ar ...

  6. [javaSE] 数组(排序-选择排序)

    两层嵌套循环,外层循环控制次数,内层循环进行比较 for(int x=0;x<arr.length;x++){ for(int y=0;y<arr.length;y++){ if(arr[ ...

  7. Comparator比较器

    Comparator比较器 简介 为什么写? comparator 是javase中的接口,位于java.util包下,该接口抽象度极高,有必要掌握该接口的使用 大多数文章告诉大家comparator ...

  8. JavaSE语法基础(3)---函数、数组

    JavaSE语法基础(3)---函数.数组 函数的概念:实现特定功能的一段代码,可反复使用. 函数的出现减少代码冗余,提高代码的复用性,可读性,可维护性,可以使每个功能模块独立起来,方便分工合作. 函 ...

  9. JavaSE回顾及巩固的自学之路(四)——————方法和数组,面向对象

    今天是2018.03.31,emmmmmm.好像距离上一次写Javase回顾总结已经好久好久过去,差一点就以为要停更了,哈哈哈.        其实呢,最近是真的好忙(额,这段时间觉得自己一直在学习) ...

  10. 「JavaSE 重新出发」05.02 泛型数组列表、包装类

    泛型数组列表 ArrayList 是一个采用类型参数(type parameter)的泛型类(generic class). java ArrayList<Employee> staff ...

随机推荐

  1. JavaScript中的变量提升本质

    JavaScript中奇怪的一点是你可以在变量和函数声明之前使用它们.就好像是变量声明和函数声明被提升了代码的顶部一样. sayHi() // Hi there! function sayHi() { ...

  2. 鸿蒙HarmonyOS实战-ArkUI动画(布局更新动画)

    前言 动画是一种通过连续展示一系列静止的图像(称为帧)来创造出运动效果的艺术形式.它可以以手绘.计算机生成或其他各种形式呈现.在动画中,每一帧都具有微小的变化,当这些帧被快速播放时,人眼会产生视觉上的 ...

  3. 力扣138(java)- 复制带随机指针的链表(中等)

    题目: 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点. 构造这个链表的 深拷贝. 深拷贝应该正好由 n 个 全新 节点组成,其 ...

  4. 力扣299(java)-猜数字游戏(中等)

    题目: 你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下: 写出一个秘密数字,并请朋友猜这个数字是多少.朋友每猜测一次,你就会给他一个包含下述信息的提示: 猜测数字中有多少 ...

  5. 当 AI 邂逅绘画艺术,能迸发出怎样的火花?

    简介: 2021年初,OpenAI 团队发布了能够根据文本描述生成图像的 DALL-E 模型.由于其强大的跨模态图像生成能力,引起自然语言和视觉圈技术爱好者的强烈追捧.仅仅一年多的时间,多模态图像生成 ...

  6. 企业版Spark Databricks + 企业版Kafka Confluent 联合高效挖掘数据价值

    ​简介:本文介绍了如何使用阿里云的Confluent Cloud和Databricks构建数据流和LakeHouse,并介绍了如何使用Databricks提供的能力来挖掘数据价值,使用Spark ML ...

  7. Python:Short Circuiting -- “OR”

    Short Circuiting Operator Checks if: Evaluates from left to right up to: Example AND All values are ...

  8. IIncrementalGenerator 增量 Source Generator 生成代码应用 将构建时间写入源代码

    本文将和大家介绍一个 IIncrementalGenerator 增量 Source Generator 生成代码技术的应用例子,将当前的构建时间写入到代码里面.这个功能可以比较方便实现某些功能的开关 ...

  9. WPF 已知问题 传入错误数据给到 WriteableBitmap 可能导致渲染线程锁住

    本文记录一个 WPF 已知问题,此问题已经被我修复.传入错误的数据给到 WriteableBitmap 对象,比如调用 WritePixels 时传入错误的 stride 数值,将可能导致渲染线程进入 ...

  10. vue3 快速入门系列 —— 状态管理 pinia

    其他章节请看: vue3 快速入门 系列 pinia vue3 状态管理这里选择 pinia. 虽然 vuex4 已支持 Vue 3 的 Composition API,但是 vue3 官网推荐新的应 ...