数组

概念

在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. HBuilderX 连接网易mumu手机模拟器进行App开发

    1.下载安装手机模拟器 常见的安卓手机模拟器: 手机模拟器名称 对应端口号 夜神模拟器 62001 天天模拟器 6555 海马玩模拟器 26944 逍遥模拟器 21503 网易mumu模拟器 7555 ...

  2. APISIX 简单的自定义插件开发步骤

    本文基于 APISIX 3.2 版本进行插件开发并运行通过. APISIX 目前开发插件比较简单,只需要编写 Lua 源代码并放到默认的插件目录下,然后通过配置文件开启插件即可,我们如果使用 Dock ...

  3. 牛客网-SQL专项训练19

    ①下列哪个语句是授予用户SQLTest对数据库Sales的CUSTOMERS表的列cid.cname的查询权限(C) 解析: 授予权限的语法: GRANT <权限> ON 表名(列名) T ...

  4. 用积木讲运维,这样的IT人太会了

    简介: 日志服务SLS提供数据采集.加工.分析.告警可视化与投递功能,为AIOps.大数据分析.运营服务.大数据安全等场景提供支撑,并能以搭积木的方式适配各类运维场景,辅助企业的IT决策.近日,日志服 ...

  5. 网易数帆Curve加入PolarDB开源数据库社区

    ​简介:Curve社区签署阿里巴巴开源CLA(Contribution License Agreement, 贡献许可协议), 正式与阿里云PolarDB 开源数据库社区牵手. Curve社区签署阿里 ...

  6. 开源微服务编排框架:Netflix Conductor

    简介:本文主要介绍netflix conductor的基本概念和主要运行机制. ​ 作者 | 夜阳 来源 | 阿里技术公众号 本文主要介绍netflix conductor的基本概念和主要运行机制. ...

  7. WPF 设置 IncludePackageReferencesDuringMarkupCompilation 属性导致分析器不工作

    本文记录在 WPF 项目里面设置 IncludePackageReferencesDuringMarkupCompilation 属性为 False 导致了项目所安装的分析器不能符合预期工作 设置 I ...

  8. WPF 更改 DrawingVisual 的 RenderOpen 用到的对象的内容将持续影响渲染效果

    在 WPF 里面,可以通过 DrawingVisual 来进行使用底层的绘制方法,此方法需要调用 DrawingVisual 的 RenderOpen 拿到 DrawingContext 类型的对象, ...

  9. 随机化Tricks

    参阅: https://zh.cppreference.com/w/cpp/numeric/random https://zh.cppreference.com/w/cpp/header/random ...

  10. ansible系列(24)--ansible的loop循环语句

    目录 1. loop循环语句 1.1 使用循环批量安装软件 1.2 使用循环批量启动服务 1.3 使用循环批量创建用户 1.4 使用循环批量拷贝文件 1. loop循环语句 在写 playbook 的 ...