数组

定义数组公式:

数据类型[] 变量名 =new 数据类型[存储元素的个数];

实例1:int[] a=new int[10]; //定义了一个10个元素的整型数组a。

实例2:int[] a;          //声明一个int[]类型的变量a

   a=new int[10];   //创建一个10个元素的数组

 

创建数组时内存空间的划分

main(String[] args){ 
int[] arr = new int[3]; 
main REEF 
JVM 
OxAB 
new int[3] 
main 
int[] arr = new int[3]; 
OxAB 
ArrayDemo.class

实例代码

.java • Notepad++ [Administrator] 
tEt(M) 
new I ArrayDemo_3. java ß ArrayDezo_I. java EZ 
int [ ] arr—new int 
int[] 
int-Il 
25 
31 
34 
public class ArrayDemo I ( 
public static void main (String[] 
int 
int L] arr=new 
System. out (arc) ; 
int t] 
System. out. print In (arrl) ; 
for (int 
System. out. print In (arri ; 
chart] arr2=new 
chart] 
System. out. print In (arr2) ; 
for (int length;i++) 
System. out. print In (arr2 ;

 

数组定义方法:2

第一种 动态定义

1 
2 
3 
4 
5 
6 
7 
8 
9 
11 
12 
16 
17 
21 
定 义 数 组 容 器 
定 义 数 组 容 器 , 要 素 , 强 制 数 据 类 型 的 语 言 
必 须 有 数 据 类 型 , 大 小 , 就 是 存 储 数 据 的 个 数 
定 义 数 组 公 式 : 
数 据 类 型 [ ] 变 量 名 : new 数 据 类 型 [ 存 储 元 素 的 个 数 ] , 
数 据 类 型 : 数 组 中 存 储 元 素 的 数 据 类 型 
[ ] 表 示 数 组 的 意 思 
变 量 名 自 定 义 标 识 符 
new 创 建 容 器 关 键 字 
数 据 类 型 : 数 组 中 存 储 元 素 的 数 据 类 型 
[ ] 表 示 数 组 的 意 思 
元 素 个 数 , 就 是 数 组 中 , 可 以 存 储 多 少 个 数 据 
-pub]] ℃ c ] 55 ArrayDemo{ 
public 5 乜 a 乜 工 c VOId maln(Str1ng[] args) { 
/ / 定 义 数 组 , 存 储 整 数 , 容 器 长 度 , 3 个 
( 恒 定 , 
定 长 ) 
/ / 数 据 类 型 [ ] 变 量 名 : new 数 据 类 型 [ 存 储 元 素 的 个 数 ] , 
乜 [ ] arr 
11e Int 
二

 

第二种静态定义

- new 
new 
public class ArrayDemo 
public static void main (String[] args) { 
int t] arr 
= new 
System. out . printin (arr. length) ; 
System. out .println (arr[Sl) ; 
System. out . println ("— 
into arr2 = 
println (are. length) ; 
System. out .

数组元素赋值(定义时未赋值,默认值为0

利用数组索引为数组元素赋值

-public class ArrayDemo 1 { 
public static void main (String[] args) 
int[] arr = new int [5]; 
arr[l] = 
3 
System. out . println (arr ; 
System. out . println (arr ;

 

数组的异常问题

1、数组索引越界异常

产生原因:数组在编译时只检查语法错误,代码运行在内存中会报错

数 组 作 中 , 常 见 的 两 个 异 常 
数 组 的 素 引 越 界 异 常 
空 指 针 异 常 
ub1i 亡 class ArrayDemo 4 《 
public static void main (Strxngt] args) 
/ / 数 组 的 索 引 越 界 异 常 
的 、 2 吖 〕 巛 (e) - 
Int [ ] arr = { 
/ / 数 组 中 3 个 元 素 , 索 引 ‰ 1 , 2 
System. out .println { 一

2、空指针异常

- public class 
public static void main (string[l args) 
// int(j arr = 
/ / System. out. println [3] ) ; / lang. 
arr2 ( 
System. out . printin [21) ; 
arr2 = 
System.out. print-In (arr2[21) , 
• / / java. lang. Null pointerException

 

 

数组中的最值比较

 

x 
new 1 java ArrayDemo I. ia• 
I -public class MaxArrayDemo( 
11 
14 
ength : 400 
public static void main (String [ ] args) 
int [l 
/ / k max, 
int 
for(int . length;i++) 
if ) ( 
out . println (max) ; 
10 
Col . 
Sel:OlO 
Dos\Windows ANSI 
, : MaxArrayDemo. java 
: Max-Arrayl)emo 
568 : 24 
Ln:18 sel:1S416

 

二维数组定义

定义方式1Int[] [] arr =new int[3][4];

//定义一个二维数组,表示二维数组中有34个元素的一维数组

二维数组内存地址图

二维数组

定义方式2int[] [] arr={{1,2,3},{5,6},{12,23,44,56},{0,1,5}};

 

二维数组遍历

- Natepad++ 
— publ±c class AzzayAzzayDemo{ 
publ±c stat±c VOICI main (St ling[] 
Inc [ ] [ ] 
args) { 
for . { 
for (Int 
System. out . print (ail [I] ; 
System. out .plintln() ; 
D : h-rayArrayDemo. java 
D : h-rayArrayDemo 
D : h-rayArrayDemo. java 
D : h-rayArrayDemo 
6789

 

二维数组遍历求和

LLLJ 
public class AllayAIrayDemo 3 { 
public static void main (SC Iing[] args) { 
int [ ] [ ] 
{31, 32, 33 
int sum— 
int groups um— 
for (int ; i<arr. length; i-*) { 
g I oup S 
for (int J=C' 
, [i] . length; 3-*) { 
groupSum-æaII [i] [J] ; 
System. ouc ( 
s oup S um; 
: java 
234\da 03) java 
23 
: 66 
:219 
*group Sum) ; 
System. ouc. print In ( " 
• "*sum) ;

 

数组遍历实例:随机点名器

imvu•rt java. . Random; 
— public class Call Name { 
public static void main (SC Iing[] 
SC ring [ ] " 
args) { 
for (int i=C' ; i<names . length; i-*) { 
System. out . printin (names ; 
System. ouc . print In 
Random sc=new Random ( ) ; 
int I—sc. next Int (names . length) ; 
System. out . printin (names ; 
D: CallName 
D: CallName

 

 

posted @ 2019-11-13 11:59  青豆火腿饭  阅读(51)  评论(0编辑  收藏  举报