java数组 —(7)
* 1.数组的理解:数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,
- 并通过编号的方式对这些数据进行统一管理。
* 2.数组相关的概念:
数组名
元素
角标、下标、索引
数组的长度:元素的个数
* 3.数组的特点:
- 1数组是序排列的
- 2数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型
- 3创建数组对象会在内存中开辟一整块连续的空间
- 4数组的长度一旦确定,就不能修改。
* 4. 数组的分类:
- ① 照维数:一维数组、二维数组、。。。
- ② 照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组
数据结构:
1.数据与数据之间的逻辑关系:集合、一对一、一对多、多对多
2.数据的存储结构:
线性表:顺序表(比如:数组)、链表、栈、队列
树形结构:二叉树
图形结构:
算法:
排序算法:
搜索算法:
4.一维数组的遍历
for(int i = 0;i < names.length;i++){
System.out.println(names[i]);
}
5.一维数组元素的默认初始化值
> 数组元素是整型:0
> 数组元素是浮点型:0.0
> 数组元素是char型:0或'\u0000',而非'0'
> 数组元素是boolean型:false
> 数组元素是引用数据类型:null
6.一维数组的内存解析
1.如何理解二维数组?
数组属于引用数据类型
数组的元素也可以是引用数据类型
一个一维数组A的元素如果还是一个一维数组类型的,则,此数组A称为二维数组。
2.二维数组的声明与初始化
正确的方式:
int[] arr = new int[]{1,2,3};//一维数组//静态初始化int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};//动态初始化1String[][] arr2 = new String[3][2];//动态初始化2String[][] arr3 = new String[3][];
//也是正确的写法:int[] arr4[] = new int[][]{{1,2,3},{4,5,9,10},{6,7,8}};int[] arr5[] = {{1,2,3},{4,5},{6,7,8}};//类型推断
错误的方式:
// String[][] arr4 = new String[][4];
// String[4][3] arr5 = new String[][];
// int[][] arr6 = new int[4][3]{{1,2,3},{4,5},{6,7,8}};
3.如何调用二维数组元素:
System.out.println(arr1[0][1]);//2System.out.println(arr2[1][1]);//nullarr3[1] = new String[4];System.out.println(arr3[1][0]);
System.out.println(arr3[0]);//
4.二维数组的属性:
System.out.println(arr4.length);//3System.out.println(arr4[0].length);//3System.out.println(arr4[1].length);//4
5.遍历二维数组元素
for(int i = 0;i < arr4.length;i++){for(int j = 0;j < arr4[i].length;j++){System.out.print(arr4[i][j] + " ");}System.out.println();
}
6.二维数组元素的默认初始化值
- 规定:二维数组分为外层数组的元素,内层数组的元素
int[][] arr = new int[4][3];
外层元素:arr[0],arr[1]等
内层元素:arr[0][0],arr[1][2]等
- ⑤ 数组元素的默认初始化值
- 针对于初始化方式一:比如:int[][] arr = new int[4][3];
外层元素的初始化值为:地址值
内层元素的初始化值为:与一维数组初始化情况相同
- 针对于初始化方式二:比如:int[][] arr = new int[4][];
外层元素的初始化值为:null
内层元素的初始化值为:不能调用,否则报错。
7.二维数组的内存结构
java数组 —(7)相关推荐
- java数组简单介绍以及其方法
小谈一下java数组 数组是存放数据的容器,有两个特点:元素类型唯一,长度固定. 一维数组声明:类型[] 数组名;类型 数组名[];推荐用前一种. 多维数组声明同样是以上要求. 在数组创建时,要注意一 ...
- java 数组 反射_java数组的反射
java数组的反射,有一个JAVA API类可以运用:java.lang.reflect.Array 具体应用: 1:判断一个对象是否是数组: int arr[] = {1,2,3}; Class c ...
- java 2维数据便利_计算机等级考试二级java数组辅导
数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信息分组的便利方法. 注意: ...
- (二十六)、Java数组在内存中如何存放与分配
Java中有两种类型的数组: 基本数据类型数组: 对象数组: 当一个对象使用关键字"new"创建时,会在堆上分配内存空间,然后返回对象的引用,这对数组来说是一样的,因为数组也是一个 ...
- (PASS)JAVA数组去重 三种方法 (不用集合)
第一种方法(只学到数组的看): 定义一个新的数组长度和旧数组的长度一样,存储除去重复数据的旧数组的数据和0, package demo01;import java.sql.Array; import ...
- Java数组的基本操作方法整理
数组是具有相同数据类型的一组数据的集合,Java支持多为数组,一维数组的每个基本单元都是基本数据类型的数据,二维数组就是每个基本单元是一维数组的一维数组,以此类推,n维数组的每个基本单元都是n-1为数 ...
- Java数组常见操作
Java数组常见操作 文章目录 Java数组常见操作 7.0 数组的遍历 1.使用foreach循环访问数组中每个元素. 2.使用简单的for循环(多层循环嵌套)来遍历数组. 7.1 数组长度 7.2 ...
- Java 数组转型和范型
今天写代码遇到一个奇怪的问题,代码结构如下: [java] view plaincopy print? ArrayList<String> list = new ArrayList< ...
- 1.1 Java数组简介:数组是什么?
在某些情况下,虽然可以使用单个变量来存储信息,但是如果需要存储的信息较多(例如存储 50 名学生的成绩),这时再依次创建变量声明并赋值显得非常麻烦. 随着处理的信息量越来越大,工作也就越来越烦琐,这时 ...
- java数组可扩展_[转载]Java数组扩容算法及Java对它的应用
Java数组扩容的原理 1)Java数组对象的大小是固定不变的,数组对象是不可扩容的. 2)利用数组复制方法可以变通的实现数组扩容. 3)System.arraycopy()可以复制数组. 4)Arr ...
最新文章
- Python如何优化列表接口进行分页
- 神经网络是存储了海量的信息还是将海量的关系映射存储在了一起(发挥了存储记忆功能),还是变成了看似是一个公式,实际是成千上万个规律的公式融合在一个式子中( 类似于正弦波的傅里叶分解成无限中频率的波的加和
- pytorch下载时出现错误:EOFError: Compressed file ended before the end-of-stream marker was reached
- maven中pom.xml中依赖包代码的查询地址
- 类的加载顺序和对象的实例化
- 查看服务器的某个端口是否允许访问
- python npy文件_python实现npy格式文件转换为txt文件操作
- 递归算法和迭代算法_Java中没有递归的二进制搜索–迭代算法
- 数字组合(信息学奥数一本通-T1291)
- linux 简单命令
- 从技术的角度看区块链
- 阶段3 1.Mybatis_12.Mybatis注解开发_7 Mybatis注解开发一对多的查询配置
- tagwriter汉化版_【NFC TagWriter by NXP电脑版下载2020】NFC TagWriter by NXP PC端最新版「含模拟器」...
- Mac 终端命令大全
- pdf打印机怎么添加并使用?
- 用php 用拼出一个菱形_用php语言编程:输出一个由“*”符号组成的菱形图形(必须使用for循环语句)...
- linux 7.5安装教程,如何在CentOS Linux 7.5上安装 Pip
- 【硬件通信协议】4. 详细解析CAN总线通信协议
- Node.js 获取本机Mac地址
- 数据流图、数据流程图、程序流程图的区别与联系
热门文章
- 模拟实现EXT2文件系统
- [机器学习] 常用并行计算算子原理
- 模型监控psi_PSI和CSI:前2个模型监控指标
- Android USB 属性设置:ADB、RNDIS、MTP等
- 不同时期的同学的聚会
- HIS中的医学影像信息处理系统(PACS、RIS、LIS)
- 蒙特卡罗方法求一个三维积分(论坛帮顶)
- 项目中使用 java函数式编程_函数式编程在Java8中使用Lambda表达式进行开发
- python定义一个人类_Python类的定义、继承及类对象使用方法简明教程
- html5 canvas实际应用,Html5 Canvas入门及经典应用