流程控制与数组

  1. 流程控制结构
    • 顺序结构
    • 分支结构
      • if分支
      • switch分支
    • 循环结构
      • while
      • do-while
      • for
      • foreach
    • 嵌套循环
  2. 控制语句
    • break
    • continue
  3. 数组类型
    数组类型是一种引用类型,数组一旦初始化完成,就确定了其在内存占用的空间,长度不可变。
    • 数组定义
      声明一个引用变量,未指明内存空间,不能指定长度。
    • 数组初始化
      初始化即为数组元素分配内存空间,并赋初值(系统自动初始化后程序员再初始化)。
      • 静态初始化
        程序员指定数组初始值,系统决定数组长度。
        int[] arr = {1, 2, 3, 4, 5};
      • 动态初始化
        程序员指定数组长度。
        int[] arr = new int[10];
        不能同时指定长度和初始值!数组元素为引用类型时值默认为null。
    • 访问数组
      • 数组有length属性表示长度
        for(int i = 0;i < arr.length;++i)
      • foreach(增强型for循环)自动遍历数组和集合,只能访问不能赋值
for(int tmp: arr)
{
    System.out.println(tmp);
}
  1. 深入数组
    • 内存中的数组
      创建一个局部变量,则它被存储在所在方法的内存栈(stack)中;创建一个对象后,则该对象被存储在堆内存(heap)中以便被反复利用。方法结束而堆内存中的对象不会被销毁,所以还可以被引用。如果没有任何引用指向该对象,比如把数组变量赋值为null,则GC会回收它。
    • 二维数组
      int[][] attr = new int[4][];
      声明一个数组,第一个[4]表示这个数组存了四个引用类型的数组,第二个[]表示这四个数组存int类型的值。
  2. Arrays类
    Java增强的工具类,位于java.util包里。Arrays类里提供了直接调用来操作数组的static方法,如下:
    • 二分查找返回索引(数组需升序排列)
      int tmp = Arrays.binarySearch(arr, key);
    • sort排序
      Arrays.sort(arr);
      并行排序
      Arrays.parallelSort(arr);
    • 数组转换字符串
      String str = Arrays.toString(arr);
    • 批量赋值
      Arrays.fill(arr, value);
    • 判断数组相同
      boolean res = Arrays.equals(arr, ar);
    • 复制数组(length决定ar的长度)
      int[] ar = Arrays.copyOf(arr, length);
    • System类也提供了一个复制数组的静态方法
      static void arraycopy(src, srcletf, target, tarleft, length);

学到这里可以写写五子棋、扫雷、俄罗斯方块、连连看等小游戏了

原文地址:https://www.cnblogs.com/pycrab/p/8732558.html