Java学习之路--2022/07/11

数组

一、静态初始化

1、数组的静态初始化的写法

        数据类型【】 数组名 = {元素1,元素2,元素3};

        数据类型【】 数组名 = new 数据类型【】 {元素1,元素2,元素3};

2、数组属于什么类型,数组变量名中存储的是什么?

        属于引用数据类型,存储的是数组在内存中的地址信息

二、动态初始化数组

1、数组的动态初始化的写法

        数据类型【】 数组名称 = new 数据类型 【数组长度】;

2、两种数组定义时的特点和场景有什么区别?

        当前已经知道存入的元素值,用静态初始化。

        当前还不知道要存入哪些数据,用动态初始化。

3、动态初始化元素默认值规则

        基本类型:

        byte、short、char、long        默认值为0

        float、double                          默认值为0.0

        boolean                                  默认值为false

        引用类型:

        类、接口、数组、string          默认值为null

三、数组遍历及书写技巧

public class demo4 {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        //快捷键:arr.fori
        for (int i = 0; i < arr.length; i++) {
            //快捷键:arr[i].sout
            System.out.println(arr[i]);
        }
    }
}

 四、案例:利用数组遍历求和

需求:某部门5名员工的销售额分别是:11、21、31、41、51,请计算出他们部门的总销售额。

public class demo5 {
    public static void main(String[] args) {
       int[] money = {11,21,31,41,51};
       int sum = 0;
        for (int i = 0; i < money.length; i++) {
            sum += money[i];
        }
        System.out.println(sum);
    }
}

五、利用数组求最值

注意点:定义变量记录最大值时,这个变量建议存储第一个元素值作为参照

public class demo6 {
    public static void main(String[] args) {
        int[] score = {12,52,32,2,22};
        int max = score[0];
        for (int i = 1; i < score.length; i++) {
            if (score[i] > max){
                max = score[i];
            }
        }
        System.out.println("数组中最大的元素为:" + max);
    }
}

六、猜数字游戏

        需求:随机生成1-20之间的五个数(可重复),然后让大家猜测数字:

                未猜中提示:"未命中",并要求继续猜测

                猜中后提示:"哇!金色传说",并输出该数据第一次出现的位置,且输出全部五个数据。

import java.util.Random;
import java.util.Scanner;

public class demo7 {
    public static void main(String[] args) {
        int array[] = new int[5];
        Random r = new Random();
        for (int i = 0; i < array.length; i++) {
            array[i] = r.nextInt(20) + 1;
        }
        Scanner sc = new Scanner(System.in);
        OUT:
        while (true){
            System.out.println("请您输入一个1-20之间的整数");
            int guess = sc.nextInt();
            for (int i = 0; i < array.length; i++) {
                if (guess==array[i]){
                    System.out.println("哇!金色传说");
                    System.out.println("您的数据索引是:" + i);
                    break OUT;
                }
            }
            System.out.println("请重新猜测");
        }
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + "\t");
        }
    }
}

 

七、随机排名

        某公司开发部五名开发人员,要进行项目进展汇报演讲,现在采取随机排名后进行汇报。请先依次录入五名员工的工号,然后展示出一组随机的排名顺序。

import java.util.Random;
import java.util.Scanner;

public class demo8 {
    public static void main(String[] args) {
        int[] array = new int[5];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < array.length; i++) {
            System.out.println("请输入第" + (i + 1) + "个员工的号码");
            int gethaoma = sc.nextInt();
            array[i] = gethaoma;
        }
        Random r = new Random();
        for (int i = 0; i < array.length; i++) {
            int suiji = r.nextInt(array.length);
            int temp = array[i];
            array[i] = array[suiji];
            array[suiji] = temp;
        }
        System.out.println("随机的结果为:");
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + "\t");
        }
    }
}

八、冒泡排序

public class demo9 {
    public static void main(String[] args) {
        int[] array ={9,5,2,7};
        for (int i = 1; i <= array.length - 1; i++) {
            for (int j = 0; j < array.length - i; j++) {
                if (array[j] > array[j+1]){
                    int temp = array[j+1];
                    array[j+1] = array[j];
                    array[j] = temp;
                }
            }
        }
        System.out.print("冒泡排序的结果是:");
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + "\t");
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值