java-数组

 数组:

   - 是一种数据类型(引用类型)

   - 相同数据类型元素的集合

   - 定义:

   - 初始化:给数组中的元素做初始化

   - 访问:访问的是数组中的元素

   - 通过(数组名.length)可以获取数组的长度(元素的个数)

   - 通过下标/索引来访问数组中的元素

       下标从0开始,最大到(数组的长度-1)

   - 遍历/迭代:从头到尾挨个走一遍

java-数组_第1张图片

   数组的定义

        数组是一种数据结构,用于存储相同类型的多个元素。它可以存储基本数据类型(如int、float、boolean等)和引用数据类型(如对象)。

       数组的定义包括以下几个部分:

  1. 数据类型:数组可以存储相同类型的元素,其中元素的数据类型可以是基本数据类型或引用数据类型。
  2. 数组名:数组的名称用于标识该数组,在使用数组时需要通过数组名来引用数组。
  3. 数组的大小:数组的大小指定了数组可以存储的元素个数,它是一个非负整数。

         以下是定义数组的几种方式:

  1. 静态初始化:通过在定义数组时直接为数组元素赋值来初始化数组。语法如下:
    数据类型[] 数组名 = {元素1, 元素2, ...};
    
    例如:
    int[] numbers = {1, 2, 3, 4, 5};
    

  2. 动态初始化:在定义数组时只指定数组的类型和大小,然后在后续的代码中为数组元素赋值。语法如下:
    数据类型[] 数组名 = new 数据类型[数组大小];
    
    例如:
    int[] numbers = new int[5];
    numbers[0] = 1;
    numbers[1] = 2;
    numbers[2] = 3;
    numbers[3] = 4;
    numbers[4] = 5;
    

          无论是静态初始化还是动态初始化,数组的元素可以通过索引访问和修改,索引从0开始,直到数组的大小减1。例如,通过numbers[0]可以访问数组numbers的第一个元素。


        复制

       - System.arraycopy(a,1,b,0,4);

   //数组的复制:
       int[] a = {10,20,30,40,50};
       int[] b = new int[6]; //0,0,0,0,0,0
       //a:源数组
       //1:源数组的起始下标
       //b:目标数组
       //0:目标数组的起始下标
       //4:要复制的元素个数
       System.arraycopy(a,1,b,0,4); //灵活性好
       for(int i=0;i源数组长度,则末尾补默认值
       //---若目标数组长度<源数组长度,则将末尾的截掉
       int[] b = Arrays.copyOf(a,6); //灵活性差
       for(int i=0;i


       数组的扩容

      int[] a = {10,20,30,40,50};

       //数组扩容(创建了一个更大的新的数组,并将源数组数据复制进去了)
       a = Arrays.copyOf(a,a.length+1);
       for(int i=0;i


        - 综合案例:

    //求数组元素的最大值,并将最大值放在数组最后一个元素的下一个位置
       public class MaxOfArray {
           public static void main(String[] args) {
               int[] arr = new int[10];
               for(int i=0;imax){ //若剩余元素大于max
                       max = arr[i]; //则修改max为较大的
                   }
               }
               System.out.println("最大值为:"+max);
       
               arr = Arrays.copyOf(arr,arr.length+1); //扩容
               arr[arr.length-1] = max; //将最大值max赋值给arr中的最后一个元素
               for(int i=0;i


   
   排序:

     - Arrays.sort(arr); //升序排列(从小到大)

      //8)数组的排序:
       int[] arr = new int[10];
       for(int i=0;i=0;i--){
           System.out.println(arr[i]);
       }

总结:  

     数组是一种用来存储相同类型元素的集合,它是一种引用类型。数组在内存中是连续分配的,可以通过索引值访问数组中的元素。

  1. 声明和初始化数组 可以通过以下方式声明和初始化数组:
int[] array1; // 声明一个整型数组
array1 = new int[5]; // 初始化数组,指定长度为5

int[] array2 = {1, 2, 3, 4, 5}; // 声明并初始化数组,指定具体值

int[] array3 = new int[]{6, 7, 8, 9, 10}; // 声明并初始化数组,指定具体值,可以省略数组长度

  1. 访问数组元素 可以使用索引值访问数组中的元素,索引值从0开始,到数组长度减1结束:
int firstElement = array2[0]; // 访问第一个元素,值为1
int lastElement = array3[array3.length - 1]; // 访问最后一个元素,值为10

  1. 数组长度 使用length属性获取数组的长度:
int length = array1.length; // 数组长度为5

  1. 遍历数组 可以使用循环结构遍历数组中的所有元素:
for (int i = 0; i < array2.length; i++) {
    System.out.println(array2[i]);
}

for (int element : array3) {
    System.out.println(element);
}

  1. 多维数组 Java中也支持多维数组,可以理解为数组的数组:
int[][] twoDimensionalArray = {{1, 2, 3}, {4, 5, 6}}; // 声明并初始化二维数组
int element = twoDimensionalArray[0][1]; // 访问二维数组中的元素,值为2

  1. 数组拷贝 Java提供了System.arraycopy()方法和Arrays.copyOf()方法,用于对数组进行拷贝:
int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray1 = new int[5];
System.arraycopy(sourceArray, 0, targetArray1, 0, sourceArray.length);

int[] targetArray2 = Arrays.copyOf(sourceArray, 5);

你可能感兴趣的:(java,算法,排序算法)