JAVA-数组和排序

来源:互联网 发布:学会用数据说话 编辑:程序博客网 时间:2024/05/22 00:13

内存:

栈,不会做默认的初始化,定义的变量用之前要初始化,堆,默认的初始化,比如数组的元素,没有赋值就可以直接用    整形---> 0    浮点---> 0.0    char  ----> 空字符    boolean--->false;

数组

    数组:数组是一个变量,用于存储相同数据类型的一组数据.    特点:        A:数组下标(索引),从0开始arr.length-1        B:长度固定        C:数组元素类型一致    格式:        A:动态初始化              int[] arr = new int[5];            arr[0] = 1;            arr[2] = 2;            ...            arr[4] = 4;        B:静态初始化              int[] arr = {1,2,4,5,6,8}//int[] arr = new int[]{1,2,4,5,6,8};    数组的常见操作    int[] arr = new int[5];//int arr[] = new int[5];    A:赋值:    //导包创建Scanner对象    int[] arr = new int[5];    //导包创建Scanner对象    Scanner sc = new Scanner(System.in);    System.out.println("input numbers");    for(int i=0; i<arr.length; i++) {        arr[i] = sc.nextInt();    }

A:遍历

   for (int i = 0; i < arr.length; i++) {            System.out.println(arr[i]);        }

B:最值

 //最大值 int max = arr[0];//一般用数组的第一个元素初始化            for (int i = 0; i < arr.length; i++) {                if(max<arr[i]) {                    max = arr[i];                }            }
   //最小值int min = arr[0];//一般用数组的第一个元素初始化            for (int i = 0; i < arr.length; i++) {                if(min>arr[i]) {                    max = arr[i];                }            }

C:排序
//冒泡排序

  for (int i = 0; i < arr.length-1; i++) {                for (int j = 0; j < arr.length-i-1; j++) {                    int tmp = 0;                    if(arr[j]>arr[j+1])  {                        tmp = arr[j];                        arr[j] = arr[j+1];                        arr[j+1] = tmp;                    }                }            }            //把if(arr[j]>arr[j+1]) 条件改成arr[j]<arr[j+1]

D:查找

  //查找值是否存在于数组            System.out.println("请输入一个值");            int num = sc.nextInt();            for (int i = 0; i < arr.length; i++) {                if(num==arr[i]) {                    System.out.println("存在");                }            }

查找对应的索引

 int index = -1;            System.out.println("请输入一个值");            int num = sc.nextInt();            for (int i = 0; i < arr.length; i++) {                if(num==arr[i]) {                    index = i;                }            }

E:逆序:

  //1 2 3 4 5            //5 2 3 4 1            //5 4 3 2 1            //逆序1            int[] array = new int[]{1,2,3,4,5};            for (int i=0,j=array.length-1; i<j  ; i++,j--) {                int tmp = array[i];                array[i] = array[j];                array[j] = tmp;            }            //逆序2            int len = array.length-1;            for (int i = 0; i < array.length/2 ; i++) {                int tmp = array[i];                array[i] = array[len-i];                array[len-i] = tmp;            }

Arrays的用法 : Arrays.toString(array)

0 0