JAVA入门教程:第五章

2016-02-19 13:11 7 1 收藏

下面图老师小编跟大家分享一个简单易学的JAVA入门教程:第五章教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

【 tulaoshi.com - 编程语言 】

数 组 是 有 序 数 据 的 集 合 ,数 组 中 的 每 个 元 素 具 有 相 同 的 数 据 类 型 ,可 以 用 一 个 统 一 的
  数 组 名 和 下 标 来 唯 一 地 确 定 数 组 中 的 元 素 。 数 组 有 一 维 数 组 和 多 维 数 组 ,下 面 我 们 分 别 介
  绍 。
  
  § 5.1 一 维 数 组
  
  一 、 一 维 数 组 的 定 义
  
  一 维 数 组 的 一 、 一 维 数 组 的 定 义
  
  一 维 数 组 的 定 义 方 式 为 :
  
  type arrayName[];
  
  其 中 类 型 (type)可 以 为 Java中 任 意 的 数 据 类 型 ,包 括 简 单 类 型 和 组 合 类 型 (见 2.1),数 组 名
  arrayName为 一 个 合 法 的 标 识 符 ,[]指 明 该 变 量 是 一 个 数 组 类 型 变 量 。 例 如 :
  
  int intArray[];
  
  声 明 了 一 个 整 型 数 组 ,数 组 中 的 每 个 元 素 为 整 型 数 据 。 与 C 、 C++不 同 ,Java在 数 组 的 定
  义 中 并 不 为 数 组 元 素 分 配 内 存 ,因 此 []中 不 用 指 出 数 组 中 元 素 的 个 数 ,即 数 组 长 度 ,而 且 对 于
  如 上 定 义 的 一 个 数 组 是 不 能 访 问 它 的 任 何 元 素 的 。 我 们 必 须 为 它 分 配 内 存 空 间 ,这 时 要 用
  到 运 算 符 new,其 格 式 如 下 :
  
  arrayName = new type[arraySize];
  
  其 中 ,arraySize指 明 数 组 的 长 度 。 如 :
  
  intArray = new int[3];
  
  为 一 个 整 型 数 组 分 配 3个 int型 整 数 所 占 据 的 内 存 空 间 。
  
  通 常 ,这 两 部 分 可 以 合 在 一 起 ,格 式 如 下 :
  
  type arrayName = new type [arraySize];
  
  例 如 :
  
  int intArray = new int[3];
  
  二 、 一 维 数 组 元 素 的 引 用
  
  定 义 了 一 个 数 组 ,并 用 运 算 符 new为 它 分 配 了 内 存 空 间 后 ,就 可 以 引 用 数 组 中 的 每 一 个
  元 素 了 。 数 组 元 素 的 引 用 方 式 为 :
  
  arrayName[index]
  
  其 中 :index为 数 组 下 标 ,它 可 以 为 整 型 常 数 或 表 达 式 。 如 a[3] ,b[i](i为 整 型 ),c[6*I]等 。 下 标
  从 0开 始 ,一 直 到 数 组 的 长 度 减 1。 对 于 上 面 例 子 中 的 in- tArray数 组 来 说 ,它 有 3个 元 素 ,分 别 为 :
  
  intArray[0],intArray[1], intArray[2]。 注 意 :没 有 intArray[3]。
  
  另 外 ,与 C、 C++中 不 同 ,Java对 数 组 元 素 要 进 行 越 界 检 查 以 保 证 安 全 性 。 同 时 ,对 于 每 个
  数 组 都 有 一 个 属 性 length指 明 它 的 长 度 ,例 如 :intArray.length指 明 数 组 intArray的 长 度 。
  
  例5.1
  public class ArrayTest{
  public static void main( String args[] ){
  int i;
  int a[]=new int[5];
  for( i=0; i<5; i++ )
  a[i]=i;
  for( i=a.length-1; i>=0; i-- )
  System.out.println("a["+i+"] = "+a[i]);
  }
  }
  运行结果如下:
  C:>java ArrayTest
  a[4] = 4
  a[3] = 3
  a[2] = 2
  a[1] = 1
  a[0] = 0
  
  该 程 序 对 数 组 中 的 每 个 元 素 赋 值 ,然 后 按 逆 序 输 出 。
  
  三 、 一 维 数 组 的 初 始 化
  
  对 数 组 元 素 可 以 按 照 上 述 的 例 子 进 行 赋 值 。 也 可 以 在 定 义 数 组 的 同 时 进 行 初 始 化 。
  例 如 :
  
  int a[] = {1,2,3,4,5};
  
  用 逗 号 (,)分 隔 数 组 的 各 个 元 素 ,系 统 自 动 为 数 组 分 配 一 定 的 空 间 。
  
  与 C中 不 同 ,这 时 Java不 要 求 数 组 为 静 态 (static)。
  
  四 、 一 维 数 组 程 序 举 例 :
  
     例5.2 Fibonacci数列
  
  Fibonacci数 列 的 定 义 为 :
  
  F1 = F2 = 1, Fn = Fn-1 + Fn-2 (n>=3)
  
  public class Fibonacci{
  
  public static void main( String args[] ){
  
  int i;
  
  int f[]=new int[10];
  
  f[0]=f[1]=1;
  
  for( i=2; i<10; i++ )
  
  f[i]=f[i-1]+f[i-2];
  
  for( i=1; i<=10; i++ )
  
  System.out.println("F["+i+"]= "+f[i-1]);
  
  }
  
  }
  
  运 行 结 果 为 :
  
  C:>java Fibonacci
  
  F[1]= 1
  
  F[2]= 1
  
  F[3]= 2
  
  F[4]= 3
  
  F[5]= 5
  
  F[6]= 8
  
  F[7]= 13
  
  F[8]= 21
  
  F[9]= 34
  
  F[10]= 55
  
  例 5.3冒 泡 法 排 序 (从 小 到 大 )
  
  冒 泡 法 排 序 对 相 邻 的 两 个 元 素 进 行 比 较 ,并 把 小 的 元 素 交 换 到 前 面 。
  
  public class BubbleSort{
  
  public static void main( String args[] ){
  
  int i,j;
  
  int intArray[]={30,1,-9,70,25};
  
  int l=intArray.length;
  
  for( i=0; i<l-1; i++)
  
  for( j=i+1; j<l; j++ )
  
  if( intArray[i]>intArray[j] ){
  
  int t=intArray[i];
  
  intArray[i]=intArray[j];
  
  intArray[j]=t;
  
  }
  
  for( i=0; i<l; i++ )
  
  System.out.println(intArray[i]+" ");
  
  }
  
  }
  
  运 行 结 果 为 :
  
  C:>java BubbleSort
  
  -9
  
  1
  
  25
  
  30
  
  70]@@@
  
  § 5.2 多 维 数 组
  
  与 C、 C++一 样 ,Java中 多 维 数 组 被 看 作 数 组 的 数 组 。 例 如 二 维 数 组 为 一 个 特 殊 的 一 维
  数 组 ,其 每 个 元 素 又 是 一 个 一 维 数 组 。 下 面 我 们 主 要 以 二 维 数 组 为 例 来 进 行 说 明 ,高 维 的
  情 况 是 类 似 的 。
  
  一 、 二 维 数 组 的 定 义
  
  二 维 数 组 的 定 义 方 式 为 :
  
  type arrayName[][];
  
  例 如 :
  
  int intArray[][];
  
  与 一 维 数 组 一 样 ,这 时 对 数 组 元 素 也 没 有 分 配 内 存 空 间 ,同 样 要 使 用 运 算 符 new来 分 配
  内 存 ,然 后 才 可 以 访 问 每 个 元 素 。
  
  对 高 维 数 组 来 说 ,分 配 内 存 空 间 有 下 面 几 种 方 法 :
  
  1 直 接 为 每 一 维 分 配 空 间 ,如 :
  
  int a[][] = new int[2][3];
  
  2 从 最 高 维 开 始 ,分 别 为 每 一 维 分 配 空 间 ,如 :
  
  int a[][] = new int[2][];
  
  a[0] = new int[3];
  
  a[1] = new int[3];
  
  完 成 1中 相 同 的 功 能 。 这 一 点 与 C、 C++是 不 同 的 ,在 C、 C++中 必 须 一 次 指 明 每 一 维 的
  长 度 。
  
  二 、 二 维 数 组 元 素 的 引 用
  
  对 二 维 数 组 中 每 个 元 素 ,引 用 方 式 为 :arrayName[index1][index2]
  
  其 中 index1、 index2为 下 标 ,可 为 整 型 常 数 或 表 达 式 ,如 a[2][3]等 。 同 样 ,每 一 维 的 下 标 都 从
  0开 始 。
  
  三 、 二 维 数 组 的 初 始 化
  
  有 两 种 方 式 :
  
  1 直 接 对 每 个 元 素 进 行 赋 值 。
  
  2 在 定 义 数 组 的 同 时 进 行 初 始 化 。
  
  如 :int a[][]={{2,3},{1,5},{3,4}};
  
  定 义 了 一 个 3× 2的 数 组 ,并 对 每 个 元 素 赋 值 。
  
  四 、 二 维 数 组 举 例 :
  
  例 5.4 矩 阵 相 乘
  
  两 个 矩 阵 Am× n、 Bn× l相 乘 得 到 Cm× l,每 个 元 素 Cij = ? aik*bk j (i=1..m,n=1..n)
  
  public class MatrixMultiply{
  public static void main( String args[] ){
  int i,j,k;
  int a[][]=new int[2][3];
  int b[][]={ {1,5,2,8},{5,9,10,-3},{2,7,-5,-18} };
  int c[][]=new int[2][4];
  for( i=0; i<2; i++ )
  for( j=0; j<3; j++ )
  a[i][j]=(i+1)*(j+2);
  for( i=0; i<2; i++ ){
  for( j=0; j<4; j++ ){
  c[i][j]=0;
  for( k=0; k<3; k++ )
  c[i][j]+=a[i][k]*b[k][j];
  }
  }
  System.out.println("*** Matrix A ***");
  for( i=0; i<2; i++ ){
  for( j=0; j<3; j++ )
  System.out.print(a[i][j]+" ");
  System.out.println();
  }
  System.out.println("*** Matrix B ***");
  for( i=0; i<3; i++ ){
  for( j=0; j<4; j++ )
  System.out.print(b[i][j]+" ");
  System.out.println();
  }
  System.out.println("*** Matrix C ***");
  for( i=0; i<2; i++ ){
  for( j=0; j<4; j++ )
  System.out.print(c[i][j]+" ");
  System.out.println();
  }
  }
  }
  其结果为:
  C:>java MatrixMultiply
  *** Matrix A ***
  2 3 4
  4 6 8
  *** Matrix B ***
  1 5 2 8
  5 9 10 -3
  2 7 -5 -18
  *** Matrix C ***
  25 65 14 -65
  50 130 28 -130

来源:http://www.tulaoshi.com/n/20160219/1603290.html

延伸阅读
郁欣 孙元 王曦东 王克宏 在 前 面 几 章 中 ,我 们 对 Java的 简 单 数 据 类 型 、 数 组 、 运 算 符 和 表 达 式 以 及 流 控 制 方 法 作 了 详 细 的 介 绍 。 从 现 在 开 始 ,我 们 要 深 入 到 面 向 对 象 的 编 程 技 术 ,深 入 到 Java最 吸 引 人 的 地 方 。 本 章 中 ,我 们 首 先 讲 述 面 向 对 象 程 ...
王克宏 郁欣 孙元 王曦东 § 1.1 Java语言出现的背景、影响及应用前景 一、背景 最近一年多来 ,在 Internet上出现的非凡吸引人的事件就是Java语言和用 Java编写的浏览器 HotJava。 1991年 ,SUN MicroSystem公司的 Jame Gosling、 Bill Joe等人 ,为在电 视、控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一...
给宝宝起名的常识(第五章)     在我们国家传统的起名当中,名字如果太“绕口”的话也不要,因此我们接下来就来讲第五点起名字时候需要注意的——忌读“绕口”字!     起名有时可以得用叠音的方法。例如:丁 丁、方 芳、辛欣等。如果不是叠音的姓名,名和姓的发音方法就要拉开一定的距...
郁欣 孙元 王曦东 王克宏 与 C、 C++相 同 ,Java程 序 通 过 流 控 制 来 执 行 程 序 流 ,完 成 一 定 的 任 务 。 程 序 流 是 由 若 干 个 语 句 组 成 的 。 语 句 可 以 是 单 一 的 一 条 语 句 ( 如 c=a+b; ),也 可 以 是 用 大 括 号 {}括 起 来 的 一 个 复 合 语 句 。 下 面 我 们 分 别 来 介 绍 ...
《永恒的尽头》流程攻略:第五章第五章【変わりゆくもの】 【エベル‧シティ(耶贝鲁市)】 1. 剧情后,取得能源结晶(红)x3、能源结晶(紫)x3,任务清单追加故事任务 2. 进入秘密据点,进入左侧琳蓓露的房间,调查前方亮点取得カチューシャ:はちんこくん 3. 来到公会接取任务『新たなる创作』、『お店に服が増えるわよ』、『...

经验教程

194

收藏

36
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部