【Demo 0003】Java基础-数组
本章学习要点:
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基础——数组的定义与使用》
Java基础--数组的定义与使用 一. 一维数组: 格式一: 数组类型 数组变量[]=new 数据类型[长度]; //需要后续赋值,且后续赋值时只能为单个元素赋值. 或 数组类型 数组变量 ...
- Java基础——数组Array
一.数组基本概念 数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 数组有三 ...
- Java基础--数组(Arrays)
数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理.本篇博客是对Java基础中的数组进行详细说明. 目录: 数组的概述 一维数组 ...
- java基础---数组的基本概念(1)
学习资源来自尚硅谷java基础学习 1. 数组的概念 数组(Array), 是多个相同类型数据按一定顺序排列的集合, 并使用一个名字命名, 并通过编号的方式对这些数据进行统一管理. 数组属于引用数据类 ...
- JAVA基础——数组详解
学习JAVA中数组的使用 一.什么是数组? 问:编写代码保存 4 名学生的考试成绩. 答:简单啊,定义 4 个变量呗 问:那"计算全年级 400 名学生的考试成绩",肿么办 答: ...
- Java基础——数组复习
数组是一个变量,存储相同数据类型的一组数据 声明一个变量就是在内存空间划出一块合适的空间 声明一个数组就是在内存空间划出一串连续的空间 数组长度固定不变,避免数组越界 数组是静态分配内存空间的,所 ...
随机推荐
- android 发送短信 怎样做到一条一条的发送,仅仅有在上一条发送成功之后才发送下一条短信
android发送短信截获上一条发送是否成功,然后再来发送下一条短信 1.问题:在项目中遇到例如以下要求:待发短信有N条,实现一条一条的发送并在上一条短信发送成功之后再来发送下一条. for(int ...
- JavaScript和JQuery获取DIV的值
1.设计源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- shell中判断用法
测试结构: 测试命令可用于测试表达式条件的真假,true,则返回0,false,则返回非0:这一点c/c++有区别: 格式: test expression #expression是一个 ...
- 两个activity之间的数据传递
1.清单文件第二个activity<activity android:name="com.example.twodatapass.ResultActivity" androi ...
- PHP - 发送短信
1.购买服务 我购买的是在百度进行推广的API服务.按照要求进行购买就好,之后获取自己的apikey. 2.将提供的代码修改后集成到项目中: <?php /** * * * 发送短信 * * * ...
- 设置VIM的配色方案
[转]Ubuntu的VIM的默认颜色难看死了,蓝色的注释基本上看不到. 查看有多少配色方案: $ ls /usr/share/vim/vim72/colors 发现有以下文件 blue.vim ...
- extern、static、auto、register 定义变量的不同用法
首先得说明什么叫“编译单元”.每个 .c 文件会被编译为一个 .o 文件,这个就是一个编译单元.最后所有的编译单元被链接起来,就是一个库或一个程序. 一个变量/函数,只要是在全局声明的,链接之后都隐含 ...
- 基于visual Studio2013解决C语言竞赛题之0710排序函数
题目
- spoj 1812 lcsII (后缀自动机)
spoj 1812 lcsII (后缀自动机) 题意:求多个串的lcs,最多10个串,每个串最长10w 解题思路:后缀自动机.先建好第一个串的sam,然后后面的串拿上去跑(这个过程同前一题).sam上 ...
- KVM虚拟机介绍
一 KVM虚拟机简介 kernel-based Virtual Machine的简称,是一个开源的 系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使用Linux ...