• 数组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}  
    
  • 相关阅读:
    python wsdl connection refused 111
    我要学算法
    linux 定时任务
    mysql语句
    Firefox配置Fiddler
    windows下安装spynner
    做一个完整的项目需要技能
    快速排序
    《实时控制软件设计》总结
    asp实现在微信jsdk分享从a页面跳转到b页面然后分享后点开又回a页面
  • 原文地址:https://www.cnblogs.com/zuozs/p/14332910.html
Copyright © 2020-2023  润新知