数组

数组

概念:

数组是一组连续的内存空间,用于存储多个类型相同的值

数组的创建语法

数据类型[]  数组名  = new  数据类型[长度];
int[]    arr   =  new  int[5]
    
数据类型[] 数组名 = { value1,value2, ...  };    
int[]     arr   =  {1,2,3,4,5,6,7 }   

概述:

  1. 数组中的每个空间称为空间元素。
  2. 对每个元素进行赋值称为元素访问
  3. 使用下标访问元素(下标从0开始)
  4. 访问语法:nums[0]
  5. 数组长度获取:数组名.length(例:nums.length)

如果下标超出范围,引发ArrayIndexOutOfBoundsException异常。
例:

public static void mian(String[] args){
     String[] nums = new String[3];
     nums[0] = "迪迦奥特曼";
     nums[1] = "戴拿奥特曼";
     nums[2] = "盖亚奥特曼";
     arrList(nums);

}
//将数组遍历打印进行封装
public static void arrList(Object[] nums){
    for(int i = 0; i < nums.length -1; i++){
         System.out.println(nums[i]);
    }
}

数组的默认值
对应一个新创建的数组,元素是有默认值的,数据类型不同,默认值不同。

byte short int long : 0
float double : 0
char : ‘\u000’
boolean: false
其他引用类型: null

数组扩容
一个数组一旦声明数组的长度就固定了,不可改变,如果需要存入更多的元素,取需要扩容,那么扩容的思想是,创建一个新的更大的数组,再把数组元素拷贝过去,最后把新数组的地址赋值给 旧数组。

1.原始方法

public static void expand(int[] nums){
  int new Arr = new int[nums.length *2];
  for(int i = 0; i < nums.length; i++){
      newArr[i] = nums[i];
  }
}

2.利用System工具方法

public static void expand(int[] nums){
//System.arraycoppy(原数组,拷贝的起始位置,新数组,复制的起始位置,数组的长度);
System.arraycopy(arr,0,newArr,0,arr.length);
}
  1. Arrays.copyOf ()最便利的方式
public static void expand(int[] nums){
//Arrays.copyOf (原数组,数组长度)
int[] bigArr = Arrays.copyOf(arr,10); 
}

数组作为参数和返回值
数组作为一种引用数据类型,也可以作为方法的参数和返回值,与基本数据类型的区别是,引用数据类型传的是地址
例:数组作为参数,

public static void mian(String[] args){

String[] arr = new String[5];
System.out.println(arrStr[]);
}
public static String[] arrStr(String[] str){
    String str1 = "HellowWord";
    for(int i= 0; i < str.length; i++){
    //往数组里存HellowWord
    str[i] = str1;
    }
    //以数组作为参数,返回一个数组地址
    return str;
}

例:数组作为返回值:

public static void main(String[] args){
    String[] data =  getArray();
    System.out.println(data[0]) // data 地址为0x222
}
public static String[] getArray(){
    String[] arr = {"小红","小明","晓东"};
    System.out.println(arr); // arr 地址为 0x222
    return arr; //返回数组的地址
} 

总结: 返回数组名,本质上返回的是数组的地址。

排序

  1. 冒泡排序
  2. 选择排序
  3. 二分查找
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值