zoukankan      html  css  js  c++  java
  • Java 数组

      1、数组的概念

      数组是特定类型数据的有序集合,它将相同类型的数据组织在一起,可以实现对它们的线性访问。

      “[ ]”叫做索引运算符(Index Operator),用于访问数组中的特定元素。

      数组下标的类型是长整型。

     

      2、数组的创建和初始化

      声明数组引用变量:

      不同于基本数据类型,声明一个数组引用变量时并不为数组在内存中分配存储空间。它只是创建了一个数组的引用的位置,该引用可以不指向任何数组。此时,可以赋值为空。

      创建数组:new操作符开辟内存。在编译时,必须能够确定数组的大小,否则编译器会报错。

    /*创建数组*/
    float [] scores=new float[10];
    
    /*初始化数组*/
    /*可以直接在创建时初始化*/
    float[] scores={1,2,3,4};
    float[] scores=new float[]{1,2,3,4}

      在执行后,数组名scores指向内存中数组对象空间的首地址。

     

      3、数组操作

      scores.length记录了数组的长度;

      如何实现数组的乱序(Shuffle)功能?

      for-each用于遍历集合类型,它不使用下标就可以顺序遍历整个集合。

    /*逐个输出数组元素*/
    for(float x:scores){
        System.out.println(x);
    }  

      4、数组复制

      (1)for循环,要避免数组越界;

      (2)System.arraycopy(Object src,int srcPos,Object dest,int destPost, int length)

       srcPos复制的起始位置,destPost在目标数组中放置数据的起始位置,length复制的数据的长度;

      5、传递数组

      数组有属性成员,所以数组是对象,它作为参数传递时传递的是数组的引用。

     

      6、可变长参数列表

      方法可以声明嫩接受可变数目的参数,可变长参数本质上是一个数组。

      对这样的方法,即可以传递离散的若干个值,也可以传递一个数组对象。

      如果方法有多个参数,可变长参数放在参数列表的最后

    /*函数的可变长参数列表*/
    public int add(int...arrays){
      int sum=0;
      for(int i:arrays)
          sum+=i;  
    }
    
    /*使用*/
    add(1,2,3);
    add(new int[]{1,2,3});

     

      7、二维数组:一个一维数组的每一个元素是一个一维数组。

      8、二分查找——在有序的数组中查找特定元素,是典型的递归算法。

    /*二分查找*/
    public int binarySearch(float[] array,int from,int to,float key){
            if(from<0 || to<0){
                System.out.println("params from & length must lager than 0");
                return -1;
            }
    
            if(from<=to){
                int middle=(from>>>1)+(to>>>1); //  右移除以2
                double temp=array[middle];
                if(temp>key){
                    to=middle-1;
                }else if(temp<key){
                    from=middle+1;
                }else{
                    return middle;
                }
            }
            return binarySearch(array,from,to,key);
        }

      9、java.util.Arrays

      Arrays是提供数组操作的包装类,它所有的方法都是静态的。

    /*每个函数都有多个重载函数*/
    /*给数组元素赋值*/
    Arrays.fill()
    
    /*按升序对数组排序*/
    Arrays.sort()
    
    /*比较两个数组中的元素是否相同*/
    Arrays.equals(array1,array2)
    
    /*查找元素,对排好序的数组进行二分查找*/
    /*3在数组中的位置*/
    Arrays.binarySearch(array1,3)

     

      10、对象数组

      数组元素不是基本类型时,数组中存放的是引用类型,而不是对象本身。

      所以必须让数组元素指向具体对象后,才能访问数组,否则会引发异常。

      

  • 相关阅读:
    Supermap/Cesium 开发心得----获取三维视角的四至范围
    Supermap/Cesium 开发心得----定位
    GIS面试小知识点
    Oracle数据库小知识点整理
    利用 uDig 生成 GeoServer 可用的 SLD 渲染文件
    Geoserver设置style
    图片按宽高比1:1响应,窗口大小如何变化,图片宽高始终相等
    简单树
    递归渲染树
    div等高布局
  • 原文地址:https://www.cnblogs.com/bigbigbigo/p/8420639.html
Copyright © 2011-2022 走看看