Java数组

1.数组

数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。

数(数据)组(一组)就是一组数据。

在这里插入图片描述

动态初始化

先声明数组
语法:数据类型数组名[]; 也可以数据类型[] 数组名;
int a[]; 或者int[] a;
创建数组
语法: 数组名=new 数据类型[大小];
a=new int[10];

静态初始化

在这里插入图片描述

数组使用注意事项和细节

  1. 数组是多个相同类型数据的组合,实现对这些数据的统一管理
  2. 数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。
  3. 数组创建后,如果没有赋值,有默认值
    int 0,short 0, byte 0, long 0, float 0.0,double 0.0,char \u0000,boolean false,String null
  4. 使用数组的步骤1. 声明数组并开辟空间2 给数组各个元素赋值3 使用数组
  5. 数组的下标是从0 开始的。
  6. 数组下标必须在指定范围内使用,否则报:下标越界异常,比如 int [] arr=new int[5]; 则有效下标为0-4
  7. 数组属引用类型,数组型数据是对象(object)

值传递 引用传递的区别

在这里插入图片描述

数组拷贝

将int[] arr1 = {10,20,30}; 拷贝到arr2 数组, 要求数据空间是独立的.

public class Array01{

	public static void main(String []args){
		
		int[] arr1 = {10,20,30};
		int[] arr2 = new int[arr1.length];
		for(int i = 0; i < arr1.length; i++) {
			arr2[i] = arr1[i];
		}
		arr2[0] = 100;
		System.out.println("====arr1 的元素====");
		for(int i = 0; i < arr1.length; i++) {
			System.out.println(arr1[i]);//10,20,30
		}
		System.out.println("====arr2 的元素====");
		for(int i = 0; i < arr2.length; i++) {
			System.out.println(arr2[i]);//10,20,30
		}
	}

}

数组反转

public class Array01{

	public static void main(String []args){
		
		int[] arr1 = {1,2,3,4,5,6};
		int n =  arr1.length;
		for (int i = 0, j = n-1 ; i < j; i++,j--){
			int temp = arr1[i];
			arr1[i] = arr1[j];
			arr1[j] = temp;
		}
		for (int i = 0; i < n; i++){
			System.out.println(arr1[i]);
		}
	}

}

冒泡排序

public class Array01{

	public static void main(String []args){

		int[] arr = {7, 3, 5, 2, 4, 6, 1};
		int n =  arr.length;
		int temp;
		for (int i = 0; i < n; i++){
			for (int j = 0; j < n-i-1; j++){
				if (arr[j] < arr[j+1]){
					temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
			}
		}
		for (int i = 0; i < n; i++){
			System.out.print(arr[i]+" ");
		}
	}
}

2.二维数组

动态初始化

  1. 语法: 类型[][] 数组名=new 类型[大小][大小]
  2. 比如: int arr[][]=new int[2][3];
    在这里插入图片描述

静态初始化

int[][] arr = {{1,1,1}, {8,8,9}, {100}};

杨辉三角

public class Array01{
	public static void main(String []args){
		int[][] arr = new int[10][];
		for (int i = 0 ; i < arr.length; i++){
			arr[i] = new int[i + 1];
			for (int j = 0; j < arr[i].length; j++){
				if (j == 0 || j == arr[i].length - 1){
					arr[i][j] = 1;
				}else{
					arr[i][j] = arr[i-1][j] + arr[i-1][j-1]; 
				}
			}
		}

		for (int i = 0 ; i < arr.length; i++){
			for (int j = 0; j < arr[i].length ; j++){
				System.out.print(arr[i][j] + " ");
			}
			System.out.println();
		}
	}
}

注意事项

一维数组的声明方式有:
int[] x 或者int x[]

二维数组的声明方式有:
int[][] y 或者int[] y[] 或者int y[][]

在这里插入图片描述
在这里插入图片描述

1.bd

2.bule

在这里插入图片描述
3.输出1 3 5 7换行

4.插入元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值