java----数组 array

来源:互联网 发布:网络电视iptv怎么打开 编辑:程序博客网 时间:2024/05/14 03:04
package demo;import java.util.Arrays;/** * 数组是一种数据结构,用来存储同一类型值的集合 * 1.数组的定义 *  1.1、数组静态初始化的语法格式: *    arrayName = new type[]{element1,element2,element3...} *    arrayName = {element1,element2,element3...} *  1.2、数组动态初始化的语法格式: *    arrayName = new type[length]; *   静态初始化时不能指定元素个数,而动态初始化时则必须指定元素个数 *   例如: *   int[] arr = new int[4]; *   int[] arr = {1,2,3,4}; *   int[] arr = new int[]{1,2,3,4}; *   *  byte、short、int、long数组元素的初始值是0 *  float、double数组元素的初始值是0.0 *  char数组元素的初始值值是'\u0000' *  boolean数组元素的初始值是false *   类、接口、数组元素的初始值是null *    *  數組的判斷:不能等於null ,并且長度不能等於0  *   * 2.数组的遍历 *  数组的下标是从0开始. * for循环,for each循环, Arrays.toString *  * 3.数组的扩容 * Java数组对象的大小是固定不变的,数组对象是不可扩容的. * 利用数组复制方法可以变通的实现数组扩容. *  Arrays.copyOf(original 原数组, int newLength 数组的长度); *  System.arraycopy(原數組,,原數組的起始下標,,新數組..新數組起始下標...新數組的長度); *   * 4.数组的排序 *  1.快速排序  Arrays.sort(); *  2.冒泡排序 *   * 5.二维数组 * int[][] arr=new int[3][4]; * int[][] arr={{1,2,3,4},{5,6,7,8},{2,3,4,5}}; * int[][] arr=new int[][]{{1,2,3,4},{5,6,7,8},{2,3,4,5}}; *  * 6.二维数组的遍历 * for,for each,Arrays.deepToString()  *  *  *  7.數組的倒置    1).先找到最小下標            在找到最大下標           在找到中間下標(小下標+大下標)/2    2.) 更換位置(第一個和最後一個...)      i和arr.length-i交換位置 *  *  *  8.數組的查找    1.有序數組可以通過二分法查找                    二分法查找步驟     1).先找到最小下標               在找到最大下標                     在找到中間下標(小下標+大下標)/2     2).判斷數和你找的數是不是一樣的     3).修改最大下標或者最小下標   2.無序數組                可以通過遍歷查找         先初始化要找的下標設置index =-1; *  *  *  **/public class ArrayDemo {/*数组的遍历*/  public static void method_1(){ int[] a=new int[10]; for(int i=0;i<a.length;i++){ a[i]=i; System.out.println(a[i]); } System.out.println("-------------"); for(int arr:a){ System.out.println(arr); } System.out.println("-------------"); System.out.println(Arrays.toString(a));  }  /*数组的扩容*/  public static void method_2(){  int[] arr={1,2,3};  int[] arrcopy=Arrays.copyOf(arr, 2*arr.length);  arrcopy[5]=4;  System.out.println(Arrays.toString(arrcopy));  }   /*统计一个字符在字符串中的所有位置. */    public static int[] count(String str,char key){    int[] count={};    for(int i=0;i<str.length();i++){        char c=str.charAt(i);        if(c==key){            //扩展数组            count=Arrays.copyOf(count, count.length+1);            //添加序号i            count[count.length-1]=i;        }    }    return count;}/*冒泡排序法*/public static int[] method_4 (int[] arr){ for(int i=0;i<arr.length;i++){ for(int j=0;j<arr.length-i-1;j++){ if(arr[j]<arr[j+1]){int c = arr[j];arr[j] = arr[j+1];arr[j+1] = c; } } }return arr;}public static void method_5(){int[][] arr=new int[3][4];System.out.println(Arrays.deepToString(arr));}  public static void main(String[] args){  method_1();  method_2();  char key = '字';      String str = "统计一个字符在字符串中的所有位置";      int[] count=count(str,key);      System.out.println(Arrays.toString(count));//[4, 7]            int[] arr={4,8,10,29,5};      int[] array=method_4(arr);      System.out.println(Arrays.toString(array));            method_5();        }}

原创粉丝点击