数组概述

1、数组创建、初始化

  (1)、创建数组:int arr[];  int型数组创建

           String arr[];    String型数组创建

      分配内存空间,必须指明长度:arr = new String[5];  /  arr = new  int[5];

  (2)、初始化数组:int arr[] = new int[5];

             int arr2[] = {1,2,3,4,5,6};

 

2、二维数组

  int myarr[][] = {{1,2},{3,4}};

 

3、遍历数组:

  最常见的是使用for循环遍历数组,长度arr.length();

  foreach也是常用的遍历数组的方式,以二维数组举例:

    for(int x[] : myarr){};

 

4、数组元素替换,Arrays.fill()方法:

  Arrays.fill(int[] a,int value)  a:需要填充替换的数组,value:要存储数组中所有的值

  Arrays.fill(int[] a,int fromIndex,int toIndex,int value);   fromIndex:需要被填充元素的第一个值(包括),toIndex:需要被填充的最后一个值(不包括)

 

5、对数组进行排序,Arrays.sort()方法:

  通过Arrays类的静态ourt()方法可以对数组进行升序排序,java中的排序算法是根据字典编排顺序排序的,因此数字排在字母前面,大写字母排在小写字母前面

 

6、复制数组,copyOf()方法和copyOfRange()方法:

  copyOf(arr,int newlength) --> 复制数组到指定长度,arr:要被复制的数组,newlength:复制后数组的新长度

  copyOfRange(arr,int fromIndex,int toIndex) --> 将指定的数组长度复制到另一个数组中,fromIndex:指定要开始复制数组的索引位置,toIndex(包括):要复制范围的最后索引位置(不包括)

 

7、数组查询,Arrays.binarySearch()方法:

  binarySearch(Object[],Object[] key) --> key:要搜索的值,若key在数组中,则返回值在数组中的位置,否则返回-1,或"-"(插入点)

  如果想要搜寻插入点,则必须在搜索前对数组进行sort()排序,例如结果返回-2,则在索引为2的位置插入值是最适合的

  binarySrarch(Object[],int formIndex,int toIndex,Object key) --> 在指定范围内查找元素,fromIndex:指定范围的开始处索引(包含),toIndex:指定范围的结束处索引(不包含),

 

8、数组排序算法:

  (1)、冒泡排序

    算法其实是使用双层循环进行排序,比较相邻两个元素大小,将大的元素向后冒泡,用临时变量实现元素之间的交换

    int[] array = {53,4,23,1,3,15};

    BubbleSort sorter = new BubbleSort();

    sorter.sort(array);

  (2)、直接排排序

    本算法是利用双层循环,定义一个索引变量,从二层循环中找到最大的一个数组元素,然后将这个数组元素与最后一位数组元素进行交换,以此类排出最终结果

    int[] array = {53,4,23,1,3,15};

    SelectSort sorter = new SelectSort();

    sorter.sort(array);

  (3)、反转排序

    反转排序就是将原有数组的内容重新排序,使用单层for循环可以实现,限制为i<arr.length/2,循环内首尾元素对调就可以实现

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

    SelectSort sorter = new SelectSort();

    sorter.sort(array);

 

posted @ 2019-10-24 22:14  pilipiqi  阅读(83)  评论(0)    收藏  举报