韩顺平零基础Java(超详细笔记梳理) 05——数组(语法,赋值机制,拷贝反转)、排序(冒泡排序)、查找、二维数组(杨辉三角)


前言

本篇文章是韩顺平老师课程P156-P189(第六章:数组排序和查找)重点内容的详细总结。

  1. 数组(语法、赋值机制、反转、扩容)
  2. 排序(冒泡)
  3. 查找
  4. 二维数组(杨辉三角)

一、数组

1. 基础语法

1)介绍

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

2)使用(动态、静态初始化语法与使用)

  • 动态初始化1

    • 定义:定义格式有两种,任意一种都可以
      数据类型 数组名[] = new 数据类型[大小];
      数据类型[] 数组名 = new 数据类型[大小];
      在这里插入图片描述
    • 引用:指定数组里要哪一个(下标)
      在这里插入图片描述
  • 动态初始化2

    • 先声明数组
      数据类型 数组名[]; 数据类型[] 数组名; int a[]; 或者 int[] a;
    • 创建数组
      数组名 = new 数据类型[大小]; a = new int[10];
      在这里插入图片描述
  • 静态初始化

    • 语法1
      数据类型 数组名[] = {元素值,元素值...};
      在这里插入图片描述

    • 语法2
      数据类型 数组名[] = new 数据类型[]{元素值,元素值...};
      在这里插入图片描述

3)注意事项和细节

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

2. 数组赋值机制 (Arry Assign)

  • 基本数据类型赋值
    • 赋值方式为值拷贝,互相不会影响
    • 是赋具体的值
public class Forxxx{
   

	public static void main(String[] args){
   
		//基本数据类型赋值,赋值方式为值拷贝
		int n1 = 10;
		int n2 = n1;

		n2 = 80;

		System.out.println(n1); //10   n1没有受n2的影响
		System.out.println(n2); //80
	}
}
  • 数组赋值
    • 默认情况下是引用传递,赋的值是地址,也叫地址拷贝
    • 数值会相互影响
public class Forxxx{
   

	public static void main(String[] args){
   
		//数组在默认情况下是引用传递,赋的值是地址
		//赋值方式为引用赋值
		//是一个地址,arr2的变化会影响到arr1
		int[] arr1 = {
   1, 2, 3};
		int[] arr2 = arr1;

		arr2[0] = 10;

		for(int i = 0; i < arr1.length; i++) {
   
			System.out.println(arr1[i]); //此时输出 10,2,3 受影响
		}
	}
}

3. 数组拷贝

直接用一个数组拷贝案例代码进行演示。

public class Forxxx{
   

	public static void main(String[] args){
   
		
		//将 int[] arr1 = {10, 20, 30}; 拷贝到 arr2 数组,要求数据空间是独立的

		int[] arr1 = {
   10, 20, 30};

		int[] arr2 = new int[arr1.length]; //开辟新的数据空间,大小与arr1相同 -> arr1.length

		for(int i = 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值