本章学习要点:
1. 了解数组的基本概念;
2. 掌握数组使用方法;
一、数组的基本概念
1. 数组定义:
同一数据类型数据的集合,在Java中它也是一种数据类型;数组按维数可分为一维数组,二维数组等多维数组,维数越多,使用越复杂所以在实现运用中一最多使用二维;
2. 数组存储
数据按顺序存储,数组中的每一个数据可以下标来访问,下标以0开始至n-1结束;
注:Java中的二维数组中第二维是可以不等长的,这有别的C/C++语言;
二、数组使用方法
1. 一维数组 -- 只有一维的数组
a. 创建
type[] array = new type[array length]; 或 type array[] = new type[第一维长度];
如: int[] intArray = new int[10]; // 创建了一个长度为10,类型为int的数组
string[] strArray = new string[2]; // 创建了一个长度为2,类型为string的数组
b. 访问
array[index] // 下标从0 …. n - 1
如:
// setter 修改数组值
intArray[0] = 100;
strArray[0] = "Hello World!"
// getter 获取数组值
int intValue = intArray[0];
string strValue = strArray[0];
通常使用循环访问数组中成员变量如:
for (int ii = 0; ii < intArray.length; ii++) {
intArray[ii] = ii;
}
2. 多维数组 -- 一维以上的数组
以二维数组为例
a. 创建
type[][] array = new type[第一维长度][第二维长度]; 或 type array[][] = new type[第一维长度][第二维长度];
如:
定长数组
int[][] intArray = new int[10][10]; // 创建一个10x10整型数组
第二维不定长数组
int[][] intArray = new int[10][]; // 第二维不定长
for (int ii = 0; ii < intArray.length; ii++) {
intArray[ii] = new int[ii+ 1];
}
b. 访问
array[第一维下标][第二维下标]
for (int ii = 0; ii < intArray.length; ii++) {
for (int jj = 0; jj <intArray[ii].length; jj++) {
intArray[ii][jj] = jj + 100;
}
}
三、代码演示
杨飞三角形实现: (不定长二维数组)
int[][] yangHei(int count) {
int [][] data = new int [count][];
for (int ii = 0; ii < count; ii++) {
data[ii] = new int[ii+1];
data[ii][0]= 1;
data[ii][ii]= 1;
}
for (int ii = 1; ii < count; ii++) {
for (int jj = 0; jj < ii; jj++) {
if (jj > 0 && jj < ii) {
data[ii][jj] = data[ii - 1][jj - 1] + data[ii - 1][jj];
}
}
}
return data;
}
10x10数组赋值与输出(定长二维数组)
int[][] data = new int[10][10];
for (int ii = 0; ii < data.length; ii++) {
for (int jj = 0; jj < 10; jj++) {
data[ii][jj] = jj;
}
}
for (int ii = 0; ii < data.length; ii++) {
for (int jj = 0; jj < 10; jj++) {
System.out.print(data[ii][jj] + " ");
}
System.out.println();
}
【Demo 0003】Java基础-数组的更多相关文章
-
java基础-数组的折半查找原理
java基础-数组的折半查找原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让你写一个数组的查找功能,需求如下:在一个数组中,找一个元素,是否存在于数组中, 如果存在就返回 ...
-
Java基础-数组常见排序方式
Java基础-数组常见排序方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 数据的排序一般都是生序排序,即元素从小到大排列.常见的有两种排序方式:选择排序和冒泡排序.选择排序的特 ...
-
Java基础——数组应用之StringBuilder类和StringBuffer类
接上文:Java基础——数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和 ...
-
Java基础——数组Array
一.数组基本概念 数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 数组有三 ...
-
Java基础--数组(Arrays)
数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理.本篇博客是对Java基础中的数组进行详细说明. 目录: 数组的概述 一维数组 ...
-
java基础---数组的基本概念(1)
学习资源来自尚硅谷java基础学习 1. 数组的概念 数组(Array), 是多个相同类型数据按一定顺序排列的集合, 并使用一个名字命名, 并通过编号的方式对这些数据进行统一管理. 数组属于引用数据类 ...
-
JAVA基础——数组详解
学习JAVA中数组的使用 一.什么是数组? 问:编写代码保存 4 名学生的考试成绩. 答:简单啊,定义 4 个变量呗 问:那"计算全年级 400 名学生的考试成绩",肿么办 答: ...
-
Java基础——数组复习
数组是一个变量,存储相同数据类型的一组数据 声明一个变量就是在内存空间划出一块合适的空间 声明一个数组就是在内存空间划出一串连续的空间 数组长度固定不变,避免数组越界 数组是静态分配内存空间的,所 ...
-
Java基础——数组应用之字符串String类
字符串String的使用 Java字符串就是Unicode字符序列,例如串“Java”就是4个Unicode字符J,a,v,a组成的. Java中没有内置的字符串类型,而是在标准Java类库中提供了一 ...
随机推荐
-
打包如何打包额外文件,比如Sqlite数据库的db文件
http://aigo.iteye.com/blog/2278224 Project Settings -> packaging -> Packaging选项中,有多个设置项来设置打包时要 ...
-
CentOS安装NodeJS及Express开发框架
http://zhaohe162.blog.163.com/blog/static/38216797201402234212981/ express 命令行工具 npm install -g ex ...
-
git 笔记
查看某个提交的修改:git show commitID 查看某个提交修改涉及的文件:git show commitID --oneline --name-status 清理掉没有入库的文件,并把修改了 ...
-
Annotation注解
概述 Annotation是JDK 5.0以后提供对元数据的支持,可以在编译.加载和运行时被读取,并执行相应的处理.所谓Annotation就是提供了一种为程序元素设置元数据的方法,可用于修饰包.类. ...
-
MFC如何添加bmp文件和ICO文件
1.添加BMP格式文件如下图所示: 2.添加ICO格式文件如下图所示:
-
使用 AcceptTcpClientAsync 进行 异步 操作
转自:https://gist.github.com/jamesmanning/2622054 using System; using System.Collections.Generic; usin ...
-
2.Yum仓库优化
1.[初始yum源备份]-[yum更换为国内源]-[添加epel扩展源] #!/bin/bash mkdir /etc/yum.repos.d/backup/ mv /etc/yum.repos.d/ ...
-
C# 串口类SerialPort的使用方法
序言:最近做了一个智能体育项目——跆拳道积分系统,硬件部分会向软件传入振动值等数据,链接方式为串口,所以用到SerialPort类. 值得注意的是: DataReceived 方法,当串口缓冲区有数据 ...
-
SpringCloud与Consul集成实现负载均衡
一.背景 SpringCloud微服务目前比较流行,其中大都在使用的服务注册与发现是Eureka,最近研究了Consul的集群搭建,现使用Consul实现服务的负载均衡.其主要拓扑结构如下: 二.Co ...
-
Apple原装扫描二维码指定区域
之前记录了用Apple原装的AVFoundationo类库扫描二维码:http://www.cnblogs.com/foxting/p/4733226.html,此篇记录下如何设置扫描区域. AVCa ...