数组arrays

数组

数组的定义

相同类型的数据的有序集合

元素

数组中每一个数据叫数组的元素,可通过下标访问(从0开始)

数组的声明

dataType[] arrayRefvar;//首选方法
或者
dataType arrayRefvar[];//效果相同

数组的创建

dataType[] arrayRefvar = new dataType[size]//用new关键字来创建

数组的赋值

//创建后赋值,动态初始化,包含默认初始化
int[] a = new int[4];
a[0] = 0;
//创建时直接赋值,静态初始化
int[] a = {0,1,2};

数组的长度

int L = arrayRefvar.length;

数组的四个基本特点:

  1. 长度固定,一旦创建无法更改
  2. 数组元素类型必须相同
  3. 数组元素可以是任意类型,基本类型和引用类型都可以
  4. 数组可以看作是对象,数组的元素可以看作是数组对象的成员变量

拓展:

成员变量和静态变量的区别

1、成员变量所属于对象。所以也称为实例变量。

静态变量所属于类。所以也称为类变量。

2、成员变量存在于堆内存中。

静态变量存在于方法区中。

3、成员变量随着对象创建而存在。随着对象被回收而消失。

静态变量随着类的加载而存在。随着类的消失而消失。

4、成员变量只能被对象所调用 。

静态变量可以被对象调用,也可以被类名调用。

所以,成员变量可以称为对象的特有数据,静态变量称为对象的共享数据。

遍历数组

public class Demo09 {
    public static void main(String[] args) {

        int[] arr = {1,2,3};
        //普通for循环,下标循环遍历数组
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        //增强for循环:for-each循环
        for (int i : arr) {
            System.out.println(i);
        }

    }

反转数组

	//数组可作为入参
    public static int[] reverse(int[] arr){
        int[] res = new int[arr.length];//创建一个新数组接收原数组的元素
        //反向接收元素
        for (int i = 0, j =res.length-1; i < arr.length; i++,j--) {
            res[j]=arr[i];
        }
        return res;//数组可作为返回值
    }

数组工具类java.util.Arrays

常用功能

  1. 数组赋值:fill

    import java.util.Arrays;
    
    public class Demo09 {
        public static void main(String[] args) {
    
            int[] a = {1,2,3,4,5};
            Arrays.fill(a,0,2,6);
            System.out.println(Arrays.toString(a));//输出:[6, 6, 3, 4, 5]
        }
    }
    
  2. 数组排序:sort

    import java.util.Arrays;
    
    public class Demo09 {
        public static void main(String[] args) {
    
            int[] a = {3,1,4,2,5};
            Arrays.sort(a,0,2);
            System.out.println(Arrays.toString(a));//输出:[6, 6, 3, 4, 5],默认是升序
        }
    }
    
  3. 元素比较:equals

    public class Demo09 {
        public static void main(String[] args) {
    
            int[] a = {1,2,3};
            int[] b = {1,2,3};
            boolean res = Arrays.equals(a,b);
            System.out.println(res);//true
        }    
    }
    
  4. 查找元素:binarySearch

    import java.util.Arrays;
    
    public class Demo09 {
        public static void main(String[] args) {
    
            int[] a = {2,1,8,6};
            Arrays.sort(a);//先对a排好序[1,2,6,8]
            int res = Arrays.binarySearch(a,6);//返回元素6的索引值
            System.out.println(res);//索引为2
        }
        
    }
    

稀疏数组

将包含许多0元素的数组转化为一个稀疏数组,达到压缩内存的目的。稀疏数组第一行记录原数组的行数、列数和非0值个数,第二行开始记录非0值元素在原数组中的位置信息和具体值。

 {0,1,0}           {3,3,3}
 {2,0,0}   ======  {0,1,1}
 {0,3,0}           {1,0,2}
                   {2,1,3}  
原文地址:https://www.cnblogs.com/zuozs/p/14332910.html