4.Java数组

1. 概念

数组是一个容器,储存多个相同类型的数据 数组也是一个引用数据类型

2. 特点
  1. 长度固定

  2. 数组元素数据类型相同

  3. 数组名对应内存中的一个地址值

  4. 数组有一个属性length 表示数组中元素的个数

  5. 数组中下标 0 到 length-1 ,访问元素时用 数组名[下标]

3. 优缺点
  1. 优点:连续储存 便利速度快

  2. 缺点:

    1. 随机删除添加一个元素时,操作复杂

    2. 数组扩容比较消耗内存

 

4. 定义
1. 声明           数据类型[ ] 数组名;
2. 开辟空间     数组名 = new 数据类型 [长度]
3. 赋值            数组名[下标] = 值;
4. 使用
   
// 声明和开辟空间可以合并写
数据类型 [] 数组名 = new 数据类型 [长度];    
// 数组可以直接声明并赋值
数据类型 [] 数组名 = {元素};

 

5. 默认值
  1. 整形:0

  2. 浮点型:0.0

  3. 字符型:u0000

  4. 布尔型:false

  5. 引用类型:null

 

6. 扩容复制
  1. System.copyarray(原数组,起始下表,新数组,起始下标,复制的长度);
  2. import java.util.Arrays;
    // 可以直接返回一个新数组
    Arrays.copyOf(原数组,新数组长度);
7. 排序
  1. import java.util.Arrays;
    // 无返回值类型 按照从小到大升序排序
    Arrays.sort(数组);
  2. // 冒泡排序
    int[] arr = {2,4,1,3,5};
    for(int i = 0;i<arr.length-1;i++){
       for(int j = 0;j<arr.length-1-i;i++){
           if(arr[j]>arr[j+1]){
               int temp = arr[j];
               arr[j] = arr[j+1];
               arr[j+1] = temp;
          }
      }
    }
8. 查找
  1. 顺序查找

  2. 二分法查找

    import java.util.Arrays;
    // 返回的是下标,若是不存在返回一个负数
    Arrays.binarySearch(数组名,要查找的数字);
9. 二维数组
数据类型[][] 二维数组名 = new 数据类型[二维数组长度][每个元素数组的长度];

 

每个元素都是一维数组的数组,每个元素都是一个一维数组的数组名,对应内存中的地址值

 

注意:
1. 数组为引用数据类型,数组名中储存的是一个地址值
2. 数组名如果直接互相赋值,赋值传递的是地址值,导致两个数组操作的是同一块内存
3. 基本数据类型直接赋值,传递的只是变量值,操作的不是同一块内存

 

原文地址:https://www.cnblogs.com/forelim/p/14658849.html