栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

DAY —05 数组

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

DAY —05 数组

一 数组

1数组:数组是引用数据类型,用来保存多个数据

2数据结构:

数据结构是计算机存储,组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。

3数组特性

1)内存中连续存储,并且下标从0开始(内存地址偏移)

2)数组长度一旦确,长度不能更改,也就意味着数组是不能添加和删除的

3)除非新建一个数组,把原数据复制到新数组中,在复制过程中可以进行添加和删除操作‘

4)所以 数组的查询和更改,效率是很高的,但是 ,添加和删除效率较低

5)数组都有一个内置属性 length 保存了数组的长度

6)在java中有一个 java.util.arrays类提供了一些数组操作

4 数组声明

1)静态声明:在已知每个元素的时候 使用静态声明

数据类型[] 变量名 = {值,值,值...} (简写方式)

数据类型[] 变量名 = new 数据类型[]{值,值,值...}

//静态声明
int [] arr = {1,2,3}
//对数组二次赋值,必须这样写,不能直接写{}
arr = new int[]{2,3,4};
int [] arr2 = new int [11];

2)动态声明:不知道数组中每个元素的时候

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

5 数组使用

1) 获取数据

//静态初始化一个数组
int [] arr = {10,2,33,21};
//获取:数组[下标],从0开始
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
//数组长度:数组.length
System.out.println(arr.length);
//最后一个元素
System.out.println(arr[arr.length - 1]);

2)更改数据

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

3)遍历

//遍历
for (int i =0; i< arr.length;i ++){
System.out.println(arr[i]);
}

//增强for循环foreach
//把数组中的每一个元素,都赋值给变量
//for(数据类型  变量名 : 数组){}
for(int element:arr){ 
System.out.println(element);
}

4)常见异常 

下标越界,空指针

6数组传递

public static void main(String[]args){
	int i = 2;
	m1(i);
	m1(22);
	
	int[]arr = {1,2,3};
	m2(arr);
//数组字面量传递方式
	m2(new int[]{1,2,3});
}
public static void m1(int i){
	
}
public static void m2(int[] arr){
	
}

7 Main方法传参

8传值和传址

1)传值 指的是传递基本类型的数据

2)传址/传引用 指的是传递引用数据类型的值

public static void main(String[]args){
	int i =10;
	m1(i);
	System.out.println("main中的i=" +i);
	
	int []arr={1,2,3};
	m2(arr);
	System.out.println(arr[0]);
}
public static void m1(int i){
	i =20;
	System.out.println("m1中的i=" +i );
}
public static void m2(int[] arr){
	arr[0] = 11;
	System.out.println(arr[0]);
}
}

二 二维数组

1声明方式

1)静态声明 

                int[][] arr = {

{1,2,3}

{2,3}                

}

2)动态声明

int[][] arr = new int [3][4] 表示该二维数组中 ,有3个一维数组,并且每一个一维数组中有4个数据

int[][] arr = new int[3][]  表示该二维数组中,有三个一维数组,并且这三个一维数组都是null

这种需要单独初始化每一个一维数组的长度,一般用于每行每列不一样的情况(每一个一维数组中,元素个数不同的情况)

arr[0] = new int[5];

arr[1] = new int[2];

arr[2] = new int[15];

public static void main(String [] args){
	//静态
	int [][] arr1 = {
			{1,2,3},
			{2,3}
	};
	//表示该二维数组中,有3个移一维数组,并且每个一维数组中都有四个数据
	int [][] arr2 =new int [3][4];
	int [] [] arr3 = new int [3] [];
	arr3[0] =new int[5];
	arr3[1] = new int [3];
	arr3[2] = new int [15];
}
}

2存储方式

 3更改数据

//更改 数组[下标][下标] = 值
arr[3][1] = 33;

4遍历

public static void main(String []args){
	int [][]arr = {
			{1,2,3},
			{22,31},
			{12,91}
	};
	for(int i = 0;i < arr.length;i++){
		for(int j =0;j

5动态声明锯齿状

public static void main(String[]args){
	 //二维表
	 int [][] arr = new int[5][6];
	 for(int i = 0;i

6交换变量的值

int x = 10;

                 int y = 11;

                 // 1 中间变量(开发常用)

                 int temp = x;

                 x = y;

                 y = temp;

                 System.out.println("x=" + x + ",y=" + y);

                 // 2 位移运算(面试用)

                 x = 2; // 0000 0010

                 y = 3; // 0000 0011

                 // 转换为对应的二进制,每位异或,相同取0,不同取1

                 x = x ^ y; // 0000 0001

                 y = x ^ y; // 0000 0010

                  x = x ^ y; // 0000 0011

                 System.out.println("x=" + x + ",y=" + y);

                 // 3 加减运算

                 x = 10;

                 y = 20;

                 x = x + y;

                 y = x - y;

                 x = x - y;

                 System.out.println("x=" + x + ",y=" + y);

        

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/696917.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号