返回顶部

方法和数组

Array

 

// 数组的操作
public class ArrayDemo {
    public static void main(String[] args) {
        int[] arr = new int[]{1,3,5,7,9};
        System.out.println(arr); // [I@659e0bfd
        System.out.println("数组长度="+arr.length);
        // 获取出arr数组中,索引为3的元素
        int ele = arr[3];
        System.out.println(ele); // 7
        // 把arr数组中索引为3的位置重新设置为77
        arr[3] = 77;
        // 取出数组中每一个元素值
        System.out.println(arr[0]); // 1
        System.out.println(arr[1]); // 3
        System.out.println(arr[2]); // 5
        System.out.println(arr[3]); // 77
        System.out.println(arr[4]); // 9
        System.out.println("-------------------------");
        for(int index = 0; index < arr.length; index++) {
            System.out.println(arr[index]); // 1 3 5 77 9
        }

        arr = new int[]{1,3,5,7,9};
        System.out.println(arr[4]); // 9

        int[] arr2 = {1,3,5};
        System.out.println(arr2.length); // 3
    }
}
// 数组的基本操作2
public class ArrayDemo2 {
    public static void main(String[] args) {
        int[] arr = new int[]{7, 11, 7, 3, -5, 7, 9, 8};

        int max = getMax(arr);
        System.out.println(max); // 11
        System.out.println(getMin(arr)); // -5
        // 调用打印
        print(arr); // [7,11,7,3,-5,7,9,8]
        print2(arr);
        // 获取arr中7第一次出现的索引
        int startIndex = indexOf(arr, 17); // 返回最开始出现的位置
        System.out.println(startIndex);
        // 取出最后一次出现的位置
        int endIndex = lastIndexOf(arr, 7);
        System.out.println(endIndex);
    }

    // 获取指定元素在指定数组的第一次出现的位置
    static int indexOf(int[] arr, int key) {
        for (int index = 0; index < arr.length; index++) {
            if (arr[index] == key) {
                return index;
            }
        }
        return -1; // 表示找不到
    }

    static int lastIndexOf(int[] arr, int key) {
        for (int index = arr.length - 1; index >= 0; index--) {
            if (arr[index] == key) {
                return index;
            }
        }
        return -1;
    }

    // [7,11,7,3,-5,7,9,8]
    static void print(int[] arr) {
        String str = "[";
        for (int i = 0; i < arr.length; i++) {
            str = str + arr[i];
            // 不是最后一个元素
            if (i != arr.length - 1) {
                str = str + ", ";
            }
        }
        str = str + "]";
        System.out.println(str);
    }

    // 逆序打印
    static void print2(int[] arr) {
        String str = "[";
        for (int i = arr.length - 1; i >= 0; i--) {
            str = str + arr[i];
            // 不是最后一个元素
            if (i != 0) {
                str = str + ", ";
            }
        }
        str = str + "]";
        System.out.println(str);
    }

    // 定义方法:取出数组中的最大值
    static int getMax(int[] arr) {
        int max = arr[0]; // 默认第一个元素就是最大值
        for (int i = 0; i < arr.length; i++) {
            // 若发现某一个元素比max变量更大,就应该临时保存到max变量中,再继续做比较
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        return max;
    }

    // 定义方法:取出数组中的最小值
    static int getMin(int[] arr) {
        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] < min) {
                min = arr[i];
            }
        }
        return min;
    }
}

 

 

DynInit

// 数组的动态初始化
public class DynInitDemo {
    public static void main(String[] args) {
        // 创建一个长度为5的数组
        int[] nums = new int[5];
        // 创建一个长度为3的数组
        nums = new int[3];
        // 创建一个长度为4的数组
        String[] names = new String[4];
    }
}

 

Method

public class MethodDemo1 {
    // 无参数无返回:定义一个打印Hello的方法
    static void p() {
        System.out.println("Hello");
    }
    // 有参数无返回
    static void p2(String data) {
        System.out.println(data);
    }
    // 无参数有返回
    static int getAge() {
        return 16;
    }
    // 有参数有返回:该方法接收一个名字,返回Hello名字
    static String sayHello(String name) {
        return "hello " + name;
    }
    public static void main(String[] args) {
        // 调用p方法
        p();
        // 调用p2方法
        p2("世界");
        p2("Hello");
        // 调用getAge方法
        int age = getAge();
        System.out.println(age);

        // 调用sayHello方法
        String s = sayHello("will");
        System.out.println(s);
        // 调用getSum方法
        // 3 和 4 之和
        int a = 3;
        int b = 4;
        int sum = getSum(a, b);
        System.out.println(sum);
    }
    // 定义两个整数求和的功能
    static int getSum(int x,int y) {
        int z = x + y;
        return z;
    }
}

 

 MethodOverload

// 方法重载
public class MethodOverloadDemo {
    public static void main(String[] args) {
        /**
         * 两同一不同:
         *             两  同: 方法必须在同一个类中,并且方法的名字相同.
         *             一不同: 方法各自的参数列表不同(参数类型,参数个数,参数顺序).
         *         遵循了两同一不同原则的多个方法,之间就属于重载关系.
         */
        double ret  = getSum(1,3.14);
        System.out.println(ret); // 4.140000000000001

        System.out.println();
        System.out.println(true); // true
        System.out.println('A'); // A
        System.out.println(123); // 123
        System.out.println(3.14); // 3.14
    }

    // 求两个整数之和
    static int getSum(int x, int y) {
        return x + y;
    }
    // 求两个小数之和
    static double getSum(double x, double y) {
        return x + y;
    }
    // 求一个整数和一个小数之和
    static double getSum(int x, double y) {
        return x + y;
    }
}

 

Recursion

// 递归操作
public class RecursionDemo {
    public static void main(String[] args) {
        /**
         *   斐波纳契数列,其通项公式为:
         *      F(0)=0,F(1)=1,Fn=F(n-1) +F(n-2)(n>=3,n∈N*),
         *      现在求F(5)的值,怎么做呢?
         */
        int ret = fn(6);
        System.out.println(ret); // 8
    }

    static int fn(int n) {
        if (n == 0) {
            return 0;
        } else if (n == 1) {
            return 1;
        } else {
            return fn(n - 1) + fn(n - 2);
        }
    }
}

 

 StaticInit

// 数组的静态初始化
public class StaticInitDemo {
    public static void main(String[] args) {
        // 存储5个奇数
        int[] nums = new int[]{1, 3, 5, 7, 9};
        System.out.println("length="+nums.length); // 数组长度/有几个元素个数
        // 创建新的数组,并赋值给nums变量
        nums = new int[]{2,4,6};
        System.out.println("length="+nums.length);

        String[] names = {"A","B","C"};
    }
}

 

 

 

 

posted @ 2019-11-09 20:57  明亮且蛋糕  阅读(166)  评论(0编辑  收藏  举报