数组和封装方法

方法的封装

  • 一个类中可以定义N个方法,但只有main方法是程序的入口
  • 类中可以没有main方法
  • 方法体现的是代码的封装性,将重复的逻辑封装到一个方法中,下次是使用的时候直接调用方法即可
  • 方法必须写在类中
  • 方法在程序中代表能做什么、能返回什么、需要什么
  • 编写方法的语法
	返回值类型	方法名(参数类型,变量名){
		能做什么...
	}
	返回值就是java中返回的数据类型,如果没有返回值就用void标识

数组

  • 数组的长度一经创建不可改变
  • 数组中存放的数据类型必须一致
  • 数组中通过length获取数组的长度
  • 数据通过索引获取数组中的元素

数组默认值

byte、short、int、long数组默认值为0
boolean数据类型的默认值为false
char数组对应的默认值是0对应的字符
浮点数组的默认值为0.0
引用数组的默认类型为null

  • 定义方法

int[] array=new int[3] //定义一个长度为3的数组,里面的值默认为0
int[] array={1,3,4,5}//长度为4,
int[] array=new int[] {12,3,4,}
int[] array ; array = {1, 2, 3} `错误写法

数组的遍历

  • 普通的for循环遍历
public static void main(String[] args){
	int[] array={1,3,4,1};
	for(int i=0;i<array.length;i++){
		System.out.println(array[i]);
	}
}
  • 增强版for循环遍历
public static void main(String[] args){
	int[] array={1,3,4,1};
	//中间用:前面i代表的是数组里元素,后面是数组的变量名
	for(int i:array){
		System.out.println(i);
	}
}

数组的封装

package com.qikux.utils;

public class MyUtils {
    //封装一个求取数组中最大值的方法
    public static int max(int[] array) {
        int max = array[0];
        for (int i = 1; i < array.length; i++) {
            if (max < array[i]) {
                max = array[i];
            }
        }
        return max;
    }

    //封装一个求取数组中最小值的方法
    public static int min(int[] array) {
        int min = array[0];
        for (int i = 1; i < array.length; i++) {
            if (min > array[i]) {
                min = array[i];
            }
        }
        return min;
    }

    //封装一个求取数组中指定元素第一次所在的位置
    public static int indexOf(int b, int[] array) {
        for (int i = 0; i < array.length; i++) {
            if (b == array[i]) {
                return i;
            }
        }
        return -1;
    }

    //封装一个求取数组中指定元素最后一次次所在的位置;
    public static int lastIndexOf(int b, int[] array) {
        int lastindexof = array.length - 1;
        for (int i = array.length - 1; i >= 0; i--) {
            if (b == array[i]) {
                return i;
            }
        }
        return -1;
    }

    /*封装一个求取元素是否在数组中*/
    public static boolean has(int b, int[] array) {
        return indexOf(b, array) != -1;
    }



    /**
     * 三元运算符定义最大值
     */
    public static int max(int a, int b) {
        int c = a > b ? a : b;
        return c;
    }

    /**
     * 三元运算符定义最小值
     */
    public static int min(int a, int b) {
        int c = a < b ? a : b;
        return c;
    }

    /**
     *定义一个方法 greatestCommonDivisor ,计算两个整数的 最大公约数
     */
    public static int greatestCommomDivisor(int a,int b){
        while(true){
           /* if(a>b){
                a=a-b;
            }else{
                a=a^b;
                b=a^b;
                a=a^b;
                a=a-b;
            }
            if(a==b){
                return a;
            }
        }*/
            if(a>b){
                a=a%b;
            }else{
                a=a^b;
                b=a^b;
                a=a^b;
                a=a%b;
            }
            if (a%b==0){
                return b;
            }
        }
    }
    /**
     * 定义一个方法 leastCommonMultiple, 计算两个整数的 最小 公倍数
     */
    public static int leastCommonMultiple(int a,int b){
        int c=a,d=b;
        while(true){
            if(a>b){
                a=a-b;
            }else{
                a=a^b;
                b=a^b;
                a=a^b;
                a=a-b;
            }
            if(a==b){
                return c*d/a;
            }
        }
    }
    /**
     * 封装一个 avg 方法, 用来 计算 int[] 数组的所有元素的平均值
     */
    public static double avg(int[] array){
        int sum=0;
        for (int i = 0; i < array.length; i++) {
            sum+=array[i];
        }
        return sum/array.length;
    }
    /**
     * 封装一个 isLeapYear 方法, 判断 对应的年份是否是闰年
     */
    public static boolean isLeapYear(int a){
        if (a%4==0&&a%100!=0||a%400==0){
            return true;
        }
        return false;
    }
    /**
     * 封装一个 isOdd 方法,判断一个数字是否是 奇数
     */
    public static boolean isOdd(int a){
        if(a%2==0){
            return false;
        }
        return true;
    }
    /**
     * 封装一个 isEven 方法,判断一个数字是否是 偶数
     */
    public static boolean isEven(int a){
        if (a%2==0){
            return true;
        }
        return false;
    }
    /**
     * 封装一个 isPrimes 方法, 判断一个数字是否是 素数
     */
    public static boolean isPrimes(int a){
        for(int i=2;i<=Math.sqrt(a);i++){
            if(a%i==0){
                return false;
            }
        }
        return true;
    }
    /**
     *
     * 封装一个 bubbleSort 方法、实现 int[] 数组的冒泡排序
     */
    public static void bubbleShort(int[] array) {
        //第一个for循环用来控制循环几趟
        for (int i = 1; i < array.length; i++) {
            //第二个for循环用来控制一趟循环几次
            for (int j = 0; j < array.length - i; j++) {
                if (array[j] > array[j + 1]) {
                    //通过异或实现两个数字的交换
                    array[j] = array[j] ^ array[j + 1];
                    array[j + 1] = array[j] ^ array[j + 1];
                    array[j] = array[j] ^ array[j + 1];
                }
            }
        }
    }
    public static void printArray(int[] array){
        for (int i : array) {
            System.out.println(i);
        }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值