数组的总结

             数组是引用数据类型,数组引用变量只是一个引用。


             数组元素和数组变量的存放位置是不同的。

             数组元素存放在堆内存中,而数组变量存放在栈内存中。

                   数组的定义的时候,先在栈内存中分配空间。如果要实例化数组,数组中的元素

        会在堆中分配内存。只有数组引用有效的数组元素,才可以访问数组元素。

       如果堆中的数组没有被引用了,就会被系统垃圾回收。

 

          引用类型数组的初始化和基本数据类型数组初始化格式一样

               如:Person [] student = new Person[2];   int [] arr = new int [2];


          多维数组可以不确定列的值,也可以列的个数不一样,但是必须确定行的值。

 

    数组的常用工具类


     int binarySearch(type[] a , type key )  

    //二分法查询,通过key元素值来查找数组a中的索引。

   方法必须先按升序存放,有返回结果,无返回负数。

  如果要在数组中的指定范围来查询,可以通过

   int binarySearch( type [] a , int fromIndex , int toIndex , type key)方法


   Type [] copyof( type[] original , int newLength ) 

      // 复制指定的数组,如果不够,可以添加0来填充。也可以复制指定数组的范围到

   新的数组中 如:type [] copyOfRange(type [] original , int from , int to)


   Boolean equals(type[] a , type[] a2)  

    //比较两个数组是否相等


    Void fill(type [] a , type val)  

    // val把数组中的每一个元素赋值  就是用val 来填充数组


   Void sort(type[] a) // 数组的升序排序(使用快速排序完成) 

  也可以指定范围来排序,同理上面。


    String toString(type [] a )  //把数组转化为字符串,按下标来组成字符串

 

  在System类中arraycopy方法可以拷贝一个数组到另一个数组

      Void arraycopy(Object src,  int srcPos,  Object dest,  int destPos,   int length)

     将指定源数组中的数组从指定位置复制到目标数组的指定位置。

 

    数组排序(具体排序代码看数组排序文章)

      冒泡排序 (两两比较然后交换值,把大的数往后排)

        数组的总结

     选择排序  (找到一次遍历中的最小值的位置,与遍历中的第一个交换值)

 数组的总结

     快速排序   (取数组中的一个key值,遍历数组把数组分为大于key,和小于key的两组,

         继续把左边排序,然后右边排序)

     数组的总结

 数组的总结

        插入排序(在前两个数组元素有序的数组中,那第三个数组元素和前两数比较,然后插入其中。

          第四个元素与前三个数比较,以此类推)

  数组的总结

 

    数组的应用

 

          一维数组  

                成绩的排序,学号的排序

    多维数组

        五指棋 ,连连看 俄罗斯方块等

 

 

数组的特殊

数组与其他容器之间的区别

   考虑的因素:效率 、类型、保存的能力

   优点: 存储高,对数组的查找访问快

   缺点: 删除慢,大小不能变,一出界就有异常

可以返回一个数组,只要把方法中的返回值得类型改为数组的类型

 

 


相关文章:

  • 2019-03-06
  • 2021-06-21
  • 2021-08-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
  • 2021-08-20
猜你喜欢
  • 2021-11-27
  • 2021-09-23
  • 2022-12-23
  • 2021-07-03
  • 2022-01-21
相关资源
相似解决方案