频道栏目
首页 > 资讯 > 其他 > 正文

Java 数组解析

18-07-26        来源:[db:作者]  
收藏   我要投稿

05.01_Java语言基础(数组概述和定义格式说明)

A:为什么要有数组(容器):

为了存储同种数据类型的多个值

B;数组概念

数组是存储同一中数据类型多个元素的集合.也可以看成是一个容器

数组既可以存储基本数据类型,也可以存储引用数据类型

C:数组定义格式

数据类型[] 数组名 = new 数组类型[数组的长度];

05.02_Java语言基础(数组的初始化动态初始化)

A;什么是数组初始化;

为数组开辟连续的内存空间,并为每个数组元素赋予值

B:如何对数组进行初始化

动态初始化 只指定长度 由系统给出初始值

如: int[] arr = new int[5];

2 . 静态初始化 给出初始化值 , 有系统决定长度

C;动态初始化格式:

数据类型[] 数组名 = new 数据类型[数组长度]

D;默认初始化值

整数类型:byte,short,int,long默认初始化值都是0

浮点类型:float,double默认初始化值都是0.0

布尔类型:boolean默认初始化值false

字符类型:char默认初始化值'\u0000'

char在内存中占的两个字节,是16个二进制位

\u0000,每一个0其实代表的是16进制的0,那么四个0就是代表16个二进制位

05.03_Java语言基础(Java中的内存分配以及栈和堆的区别)

A:栈(掌握)

1.存储局部变量

局部变量:定义在方法声明上和方法中的变量

2.先进后出

B:堆(掌握):

存储new出来的数组或对象

C:方法区:

面向对象部分讲解

D:本地方法区:

和系统相关

E:寄存器:

给CPU使用

05.04_Java语言基础(数组的内存图解1一数组)

1.案例:一个数组:

public static void mian(String [] args){

int[] arr = new int[3];

System.out.println(arr);

arr[0] = 10;

arr[1] = 20;

System.out.println(arr[0]);

System.out.println(arr[1]);

}

05.05_Java语言基础(数组的内存图解2二数组)

1.案例:两个数组:

public static void mian(String [] args){

int[] arr1 = new int[3];

int[] arr2 = new int[3];

arr1[0] = 10;

arr2[1] = 20;

System.out.println(arr1[0]);

System.out.println(arr2[1]);

}

2.图解:

 

05.06_Java语言基础(数组的内存图解3三个引用两个数组)

1.案例:三个数组:

public static void mian(String [] args){

int[] arr1 = new int[3];

int[] arr2 = new int[3];

int[] arr3 =arr2;

arr[0] = 10;

a[1] = 20;

System.out.println(arr[0]);

System.out.println(a[1]);

}

 

 

 

05.07_Java语言基础(数组的初始化静态初始化及内存图)

A: 静态初始化格式:

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
简化格式:
数据类型[] 数组名 = {元素1,元素2,…};

int[] arr = {1,22,12}

B:图解:

05.08_Java语言基础(数组操作的两个常见小问题越界和空指针)

A: ArrayIndexoutofBoundsException:数组索引越界异常

原因:访问了不存在的索引

int[] arr = {1,2,3}

System.out.println(arr[-1]); //数组越界

B; NullPointrException: 空指针异常

int[] arr = {1,2,3}

arr = null;

System.out.println(arr[1]); //当把arr 赋值为null时,再去调用数组中的元素就会出现空指针异常

原因:数组已经不在指向堆内存了,而你还用数组名去访问元素

05.09_Java语言基础(数组的操作1遍历)

A: 数组的遍历: 就是依次输出数组中的每一个元素

public static void mian(String [] args){

int[] arr = {1,2,3}

for(int i= 0; i

System.out.println(arr[i]);

}

}

数组的属性:arr.length数组的长度

数组的索引范围: 0 ~ arr.length-1

05.10_Java语言基础(数组的操作2获取最值)

public static void mian(String [] args){

int[] arr = {1,2,3}

System.out.println(max(arr));

}
publicstatic int max(int[] arr) {
int max = arr[0]; // 定义max 把数组第一个元素赋给他
for (int i = 1; i < arr.length; i++) { // 遍历数组获取每一个数组元素
if (arr[i] > max) { // 判断数组元素和max比较 如果比max大
max = arr[i]; // 就把元素赋给max
}
}
return max; // 返回结果
}

05.11_Java语言基础(数组的操作3反转)

A:案例: 数组是反转(就是把元素对调)

public static void mian(String [] args){

int[] arr = {1,2,3,4,21}

System.out.println(array(arr));

}

public static void array(int [] arr){

for(int i= 0; i

//arr[0]和arr[arr.length-1-0]交换

//arr[1]和arr[arr.length-1-1]交换

//arr[2]和arr[arr.length-1-2]交换

//....

int temp = arr[i];

arr[i] = arr[arr.length-1-i];

arr[arr.length-1] = temp;

}

}

 

05.12_Java语言基础(数组的操作4查表法)

import java.util.Scanner;

public class arraynum {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入对应的星期范围在1-7");

 

int week = sc.nextInt();

//sc.close();

System.out.println("星期" + getWeek(week));

}

/*

根据索引返回对应的星期

1,返回值类型char

2,参数列表int week

*/

//数组第0个元素为null,这样1就对应的一,以此类推

public static char getWeek(int week) {

char[] arr = {' ','一','二','三','四','五','六','日'};//定义了一张星期表

return arr[week];//通过索引获取表中的元素

}

}

05.13_Java语言基础(数组的操作5基本查找)

A: 数组元素的查找(查找指定元素第一次在数组中出现的索引)

查找元素索引 int

明确参数列表int[] arr int value

 

public static void mian(String [] args){

int[] arr = {1,2,3,4,21};

int index = getindex(arr,88);

System.out.println(index);

}

public static intgetindex(int [] arr, int value){

for(int i= 0; i

if(arr[i] = 0; i

return i;

}

}

return -1;

}

05.14_Java语言基础(二维数组概述和格式1的讲解)

A;二维数组概述;

B;二维数组格式1:

int [] [] arr = new int[3][2];

C:二维数组格式1的解释

这是一个二维数组,

每个二维数组中有3个一维数组,

每一个一维数组中有2个元素

 

D:注意事项:

一些格式也可以表示二维数组 数据类型 数组名[] [] = new 数据类型[m] [n]; 数据类型[] 数组名 [] = new 数据类型[m] [n]; 注意下面定义的区别

int x;

int y;

int x,y;

 

int [] x;

int [] y [];

int []x , y []; x是一维数组,y是二维数组

案例:

int [] [] arr = new int[3][2];

//这是一个二维数组,每个二维数组中有3个一维数组,每一个一维数组中有2个元素

System.out.println(arr); //二维数组

System.out.println(arr[0]); //二维数组中的第一个一维数组

System.out.println(arr[0][0]); //二维数组中的第一个一维数组的第一个元素

 

05.15_Java语言基础(二维数组格式1的内存图解)

05.16_Java语言基础(二维数组格式2的讲解及其内存图解)

public static void mian(String [] args){

int[] []arr =new int[3] [];

 

System.out.println(arr[0]);

System.out.println(arr[0]);

System.out.println(arr[0]);

}

 

图解:

 

05.17_Java语言基础(二维数组格式3的讲解及其内存图解)

A:二维数组格式3;

int [] [] arr = {{1,2,3},{4,5},{6,7,8,9}};

B;二维数据格式3的解释:

这是一个二维数组,这个数组中的每个大括号都代表一个一维数组

C:案例:

public static void mian(String [] args){

int [] [] arr = {{1,2,3},{4,5},{6,7,8,9}};

System.out.println(arr); //二维数组的地址值

System.out.println(arr[0]); //一维数组的地址值

System.out.println(arr[0][0]); //一维数组的中的元素值

}

05.18_Java语言基础(二维数组练习1遍历)

A;案例: 二维数组的遍历

外循环控制的是二维数组的长度,其实就是以为数组的个数

内循环控制的是一维数组的长度

 

public static void mian(String [] args){

int [] [] arr = {{1,2,3},{4,5},{6,7,8,9}};

for(int i= 0; i

for(int j= 0; j

System.out.println(arr[i][j] + ”””);

}

System.out.println( );

}

}

05.19_Java语言基础(二维数组练习2求和)

A;案例: 需求:公司年销售额求和

某公司按照季度和月份统计的数据如下,单位(万元)

第一季度: 22, 66, 44

第二季度: 77, 33,88

第三季度;25,45,65

第四季度:11,65,99

public static void mian(String [] args){

int [] [] arr = {{22, 66, 44},{ 77, 33,88},{25,45,65},{11,65,99}};

int sum = 0; //定义变量,记录每次相加的结果

for(int i= 0; i

for(int j= 0; j

sum = sum +arr[i][j]; //累加

}

}

System.out.println(sum );

}

05.20_Java语言基础(思考题Java中的参数传递问题及图解)

基本数据类型(包括byte, short, int, long, float, double, boolean, char)的值传递:

public static void main(String[] args) {

int a = 10;

int b = 20;

System.out.println("a:"+a+", b:"+b); // a = 10, b = 20

change(a, b);

System.out.println("a:"+a+", b:"+b); // a = 10, b = 20(结果不变)

}

 

public static void change(int a, int b) {

System.out.println("a:"+a+", b:"+b); // a = 10, b = 20

a = b;

b = a + b;

System.out.println("a:"+a+", b:"+b); // a = 20, b = 40

}

2.引用数据类型的值传递:

public static void main(String[] args) {

int[] arr = {1,2,3,4,5}; // arr[1] = 2

change(arr);

System.out.println(arr[1]); // arr[1] = 4, 结果改变

}

public static void change(int[] arr) { // 1, 4, 3, 8, 5

for(int x=0; x

if(arr[x]%2==0) {

arr[x]*=2;

}

}

}

相关TAG标签
上一篇:设置和开通freebsd远程登录的步骤教程
下一篇:ubuntu系统下安装oracle12c版本的方法教程
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站