JAVA------数组(下)、方法、return

发布于:2022-11-28 ⋅ 阅读:(194) ⋅ 点赞:(0)

1、数组(下)、

1)数组的复制:

------①

int[] a = {10,20,30,40,50,60};
int[] b = new int[6];
System.arraycopy(a,0,b,0,6); 
//a:源数组
//0:源数组的起始下标
//b:目标数组
//0:目标数组的起始下标
//6:要复制的元素个数

优点:灵活性好

------②
import java.util.Arrays; //【该行代码在public class 上一行】
int[] a = {10,20,30,40,50,60};
int[] b=Array.copyOf(a,6);
//a: 源数组
//b: 目标数组
//6: 目标数组的长度
// --- 若目标数组长度 > 源数组长度,则末尾补默认值
// --- 若目标数组长度 < 源数组长度,则将末尾的截掉
------③数组的扩容和缩容:
int[] a = {10,20,30,40,50};
a = Arrays.copyOf(a,a.length+1);// 扩容
a = Arrays.copyOf(a,a.length-1);/ /缩容
2)数组的排序
------①升序排列:Arrays.sort(arr); 
------②降序排列:将数组进行升序排列然后倒着输出

2、方法

1) 方法:函数、过程
------①作用:用于封装一段特定的业务逻辑功能
------②建议:尽可能独立,一个方法只干一件事
------③可以被反复多次调用
------④减少代码重复,有利于代码维护
------⑤何时用:
一个业务在很多地方使用 --------------------------------- 实现复用
只要是一个独立的功能就一定得抽到方法中 -------- 常规做法

2)方法的定义:五要素

修饰词 返回值类型 方法名(参数列表) {

方法体

}
3)方法的调用:
package day06;
//数组的复制,排序,扩容等案例
import java.util.Arrays;
import java.util.Scanner;

public class ArrayDemo {
    public static void main(String[] args) {
        int[] arr=new int[10];
        for(int i=0;i<arr.length;i++){
            arr[i]=(int)(Math.random()*100);
            System.out.println(arr[i]);
        }

        Arrays.sort(arr);

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


        System.out.println("倒着排序");
        for (int i=arr.length-1;i>=0;i--){
            System.out.println(arr[i]);
        }

        /*int[] a={10,20,30,40,50,60,};
        a=Arrays.copyOf(a,a.length+1);//扩容

         */

        /*
        int[] a={10,20,30,40,50,60,70};
        int[] b=Arrays.copyOf(a,1000000);
        //a,被复制的数组
        //b,要被填充的数组
        //6,要被填充数组的长度
        //若是(填充数组的长度)大于(被复制数组的长度),则在(填充数组的长度)末尾补充默认值;
        //若是(填充数组的长度)小于(被复制数组的长度),则将(被复制数组的长度)超出的部分截掉;
        for(int i=0;i<b.length;i++){
            System.out.println(b[i]);
        }

         */

        /*
        int[] a={10,20,30,40,50};
        int[] b=new int[6];
        System.arraycopy(a,0,b,1,5);
        //a被赋值的数组
        //0被复制数组的起始下标
        //b要填充的数组
        //5要复制的元素个数
        //1被填充数组的起始下标

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

         */

    }
}





package day06;
//求数组的最大值,并将数组最后一个元素更改为最大值
import  java.util.Arrays;
public class MaxOfArray {
    public static void main(String[] args) {
        int[] arr=new int[10];
        for(int i=0;i<arr.length;i++) {
            arr[i] = (int) (Math.random() * 100);
            System.out.println(arr[i]);
        }
        //找最大值,最小值,总个数,总分,平均分---都属于统计内容
        //统计内容:一定是说有数据都填充好了再进行
        int max=arr[0];//假设第一个元素为最大值
        for(int i=1;i<arr.length;i++){
            if(arr[i]>max){
                max=arr[i];//修改最大值为较大的
            }
        }
        System.out.println("最大值为:"+max);

        arr=Arrays.copyOf(arr,arr.length+1);//扩容
        arr[arr.length-1]=max;//将max赋值给最后一个元素
        for (int i=0;i< arr.length;i++){
            System.out.println(arr[i]);
        }

    }
}





package day06;
//方法的创建和调用案例
import java.util.Scanner;
import java.util.Arrays;
public class MethodDemo {
    public static void main(String[] args) {
        //say();
        int[] e=testArray(16);


        int num= plus(6343,323);
        int a=6343,b=323;
        int c= plus(a,b);//11
       double d= getNum();//调用并接收
        sayHi("沈志辉",21);//有参必须传参,并且数据类型必须匹配
        sayHi("张三",10);//------调用时:实参
        sayHi("李四",16);
        System.out.println("over");
        System.out.println(a);//------模拟返回值的后续操作,实际操作中不一定输出
        System.out.println(num);//------模拟返回值的后续操作,实际操作中不一定输出
        System.out.println(c);
        System.out.println(e.length);

    }

//有参,有返回值(数组类型)
    public static int[] testArray(int num) {
        int[] arr = new int[num];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = (int) (Math.random() * 100);

        }
        return arr;

    }

 //有参有返回值
 public static int plus(int num1,int num2){
        int num=num1+num2;
        return num;//返回的是num里面的数据

 }


//无参,有返回值
    public static double getNum(){
        return 8.8;
        /*
        ①方法中必须有return,
        ②return出现后方法结束执行
        ③return后面必须跟一个于返回值数据类型相同的数
        ④调用该方法时,会将return后面的数,返回给调用方

         */
    }


    //有参无返回值:
    public  static  void  sayHi(String name , int age){//---------定义时:形参
        if(age>50){
            return;
        }

        System.out.println("大家好,我叫"+name+"今年"+age+"岁了!");
    }

    //无参,无返回值
     public static void say(){
        System.out.println("大家好!我叫SZH,今年21岁了");
     }

}

无返回值: 方法名(有参传参);
有返回值: 数据类型 变量 = 方法名(有参传参);

3、reyurn

return 值; //1)结束方法的执行 2)返回结果给调用方----------用在有返回值的方法中
return; //2)结束方法的执行-----------------------------------------用在无返回值的方法中
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到