Java学习笔记3

数组

数组介绍

  • 数组是用来存储一组**相同数据类型**数据的数据结构
  • 数组的元素可以是简单类型的数据,也可以是引用类型的数据
  • 无论数组内容是减等类型还是引用类型,数组本身都是一种引用类型
  • 每个数组元素都有下标,下标从0开始

数组的创建

  • 数组定义方式有两种:

    数据类型[] 数组名字;
    数据类型 数组名字[];
    
  • 在数组定义中,不能指定数组的长度,而需在数组的创建阶段来指定

    int[] a;
    a=new int[3];
    String[] b=new String[5];
    
  • 赋值

    1. 通过元素下标赋值
    2. 通过for循环赋值
    for(int i=0;i<a.length;i++){
    	a[i]=i+100;
    }
    
  • 数组初始化

    1. 数组的动态初始化
    //数组的动态初始化
    public void m2(){
    	//1、声明变量
    	int[] a;
    	//2、为数组创建大小
    	a=new int[3];
    	//3、为数组元素赋值
    	a[0]=100;
    	a[1]=200;
    	a[3]=300;
    }
    
    1. 数组的静态初始化
    //数组的静态初始化:数组创建时就赋值
    public void m3(){
        int[] a={1,2,3,4,5};
        int[] b=new int[]{10,20,30};//在[]中不能指定数组的大小
    }
    
  • 通过下标可访问一维数组中的元素

  • 一维数组的长度,使用length属性

数组作为参数和返回值

  • 一维数组作为参数
    1. 传数组的引用
    2. 创建数组直接传,本质上也是传数组的引用
    3. 传null
  • 一维数组作为返回值
    1. 返回数组的引用
    2. 直接创建一个数组返回,本质上是返回数组的引用
    3. 返回null

数组的遍历

  • 一维数组的遍历

    1. for循环遍历
    for(表达式1;表达式2;表达式3){ 循环体 }
    
    • 表达式1:声明一个变量并初始化

    • 表达式2:循环条件判断

    • 表达式3:修整变量

    1. foreach遍历
    for(数据类型 变量x : 遍历对象obj){
    		引用了x的语句
    }
    
    • 数据类型:表示的是数组中元素的类型

    • x:表示数组中的每一个元素的值

    • obj:表示的是遍历的数组对象

    (每一个foreach语句都能更改为for循环,但并不是所有的for循环都能更改为foreach语句

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

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

//foreach遍历
for(int x : a ){
    System.out.println(x);
}

数组的排序

  • 使用Array.sort()对数组排序
    1. 实用于数值型数组byte,char,short,int,long,float,double
    2. 实用于String型数组(看首字母排序)

Java可变参数

  • 可变参数与数组作为方法参数时的区别

    1. 从个数来看:可变参数只能有一个,数组可以有多个

    2. 从定义位置来看:可变参数只能定义在参数列表的末尾,数组可以在任意位置

      ​ show( String s , char c , int… a )

      ​ show( int[] a , String s , char[] c )

    3. 从传参的形式来看:

      (1)可变参数可以传数组、0个参数、1到多个参数

      (2)数组可以传数组引用、数组对象、null

数组的浅拷贝和深拷贝

  • 数组浅拷贝

    在堆内存中不会新分配出空间,而是新增一个引用变量和之前的引用指向相同的堆空间

  • 数组深拷贝

    在堆内存中分配新空间,将之前的数组堆内存中的内容拷贝到新空间中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值