一维数组和二维数组常用知识

一维数组和二维数组常用知识,第1张

一维数组和二维数组常用知识

补充一个小知识:从控制台输入一个数进来
import java.util.Scanner //导入jar包
Scanner scanner =new Scanner(System.in)
System.out.println(“请输入数字:”);
//获取输入的数字
int input=scanner.nextlnt();

一:一维数组
1.定义:数组是引用数据类型,用来保存多个数据。其中引用数据类型还包括类和接口
2.数据结构:数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种 特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关

 数据 *** 作 : 增删改查

3.数组特性
内存中连续存储,并且下标从0开始(内存地址偏移)

  •  数组长度一旦确定 长度不能更改,也就意味着数组是不能添加和删除的
    
  •  除非新建一个数组,把原数据复制到新数组中,在复制的过程当中可以进行添加和删除 *** 作
    
  •  所以 数组的查询和更改 效率是很高的,但是 添加和删除效率较低
    
  •  数组都有一个内置属性 length  保存了数组的长度
    
  •  在java中 有一个java.util.Arrays 类 提供了一些数组 *** 作
    

4.数组声明

  •  ① 静态声明 : 在已知每个元素的时候,使用静态声明
    
  •  数据类型  变量名 = 值;
    
  •  		int i = 2;
    
  •  		数据类型[]  变量名 = {值,值,值.....};  简写方式
    
  •  		数据类型[]  变量名 = new 数据类型[]{值,值,值......};  比如对数组进行二次赋值,就需要这样写
    
  •  		int[] arr = {1,2,3,6,1,2,3};
    
  •  		int[][] arr = {
    
  •  					{1,2,3},{2,1,3},{4,6}
    
  •  			};
    
  •  ② 动态声明 : 不知道数组中每个元素的时候,使用动态声明
    
  •  		数据类型[] 变量名 = new 数据类型[长度];
    
  •  		int[] arr = new int[5];
    
  •  		int[][] arr = new int[2][3];
    
  •  		动态声明,保存的是对应类型的默认值,比如上面程序中 会保存5个0
    
  •  		整数  0  , 小数  0.0  , 布尔 false , 字符 u0000 , 引用类型 null
    
         int[] arr={1,2,3};  //静态声明
         如果对数组二次赋值,必须这样写,不能直接写------ arr=new int[] {2,4,3} 
         int [] arr2=new int[10]  也可以把“[]”写到变量名后面   int arr2[] =new int[10]
    

5.获取数据
int[] arr ={10,11,12,13} //静态初始化一个数组
System.out.println(arr[0]); //注意从下标0开始 表示第一个数
System.out.println(arr[1]);
System.out.println(arr[2]);
6.更改数据
数组[小标]=值;
arr[1]=1;
System.out.println(arr[1]);
7.遍历
for(int i=0;i
System.out.println(arr[i]);
}

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

空指针


9.数组传递
例:m2(new int[]{1,2,3});
10.Main方法传参

10.传值指的是传递基本类型的数据 基本类型数据传递之后,相互之间没有影响,因为指向不同的空间
传址/传引用 指的是传递引用数据类型的值 引用类型传递之后,相互有影响,因为指向同一个堆内 存对象空间
11.数组复制
public static int[] copy(int[] src, int srcPos, int[] dest, int destPos,
int length) {
}
src:源数组 srcPos:源数组起始位置 dest:目标数组 destPos:目标数组起始位置 length:插入个数
注:因为是插入复制,所以肯定会更改数组长度,因为数组长度不能更改,所以我们只能新建数组,并通过返回值把数组返回

二:二维数组
1.声明方式


2.存储方式




3.获取数据
int[] arr0 = arr4[0]; //把数组arr4中第一个值给arr0这个数组
int arr00 = arr0[0]; //把数组arr0的第一个值给arr00这个数组
System.out.println(arr00);// 输出arr00这个数组
System.out.println(arr4[0][0]);
System.out.println(arr4[3][1]);
4.更改数据
更改 数组[下标][下标]=值
arr4[3][1]=33;
5.遍历

6.动态声明锯齿状


7.交换变量的值
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);

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5696939.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存