关于JAVA中的数组操作

关于数组需要学会什么
  1. 怎样定义数组存储数据
  2. 怎么操作数组元素
  3. 怎么解决实际问题
  4. 数组内存原理
  5. 数组使用的注意点
定义数组的方式,访问方式以及注意事项
//        数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...}
            double[] scores = new double[]{1,2,3,4,5};
            int[] ages = new int[]{11,22,33,44};
            
//简化写法:数据类型[] = 数组名 = { 元素1, 元素2, ... }
            int[] age = {12,13,14};

⚠️
数组变量名中存储的数组是内存中的地址,数组是引用类型。

// 数组的访问
System.out.println(scores[0]);
// 数组的长度
System.out.println(scores.length);

⚠️数组的最大索引怎么表示:

数组名.length - 1 // 前提:元素个数大于0
数组的几个注意事项
  • “数组类型[] 数组名”也可以写成“数据类型 数组名[]”。
  • 什么类型的数组存放什么类型的数据,否则报错。
  • 数组一旦定义出来,程序执行的过程中,长度、类型就固定了。
数组的动态初始化

定义数组的时候只确定元素的类型和数组的长度,之后再存入具体数据。

		double[] scores = new double[3];
        System.out.println(scores[0]); // 0.0
        scores[0] = 1;
        System.out.println(scores[1]); //1.0

元素默认值规则:

数据类型明细默认值
基本类型byte、short、char、int、long0
基本类型float、double0.0
基本类型booleanfalse
引用类型类、接口、数组、Stringnull
数组遍历介绍
		int[] arr = {12,32,43,54,65,76};
        int sum = 0;
        for(int i = 0 ; i < arr.length; i ++){
            sum += arr[i];
        }
        System.out.println(sum);
数组操作
		// 数组元素求最大值
		int[] faceScore = {15, 9000, 10000, 20000, 9300, -5};
        int max = faceScore[0];
        for(int i = 1; i < faceScore.length; i++){
            if (faceScore[i] > max){
                max = faceScore[i];
            }
        }
        System.out.println(max);
package scanner;

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

public class scanner {
    public static void main (String[] args) {
        // 需求:5个1~20之间的随机数,让用户猜测,猜中要提示,还要输出该数据在数组中第一次出现的索引,并打印数组的内容出来
        // 没有猜中继续
        int[] datas = new int[5];
        Random r = new Random();
        for (int i = 0; i < datas.length; i++) {
            datas[i] = r.nextInt(20) + 1;
        }
        Scanner sc = new Scanner(System.in);
        OUT:
        while (true){
            System.out.println("请您输入一个1~20之间的整数进行猜测:");
            int guessData = sc.nextInt();
            for (int i = 0; i < datas.length; i++) {
                if (guessData == datas[i]){
                    System.out.println("您猜中了,这个元素是第" + i + "个元素");
                    break OUT;
                }
            }
            System.out.println("当前猜测的数据,在数组中不存在,请重新猜测!");
        }
        for (int i = 0; i < datas.length; i++) {
            System.out.println(datas[i] + "\t");
        }
    }
}

package scanner;

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

public class scanner {
    public static void main (String[] args) {
        // 目标:键盘录入一组工号,最终要随机输出一组来作为排名
        int[] codes = new int[5];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < codes.length; i++) {
            System.out.println("请输入第" + (i + 1) + "个员工的工号");
            int code = sc.nextInt();
            codes[i] = code;
        }
        Random r = new Random();
        for (int i = 0; i < codes.length; i++) {
            int index = r.nextInt(codes.length);
            int temp = codes[index];
            codes[index] = codes[i];
            codes[i] = temp;
        }
        for (int i = 0; i < codes.length; i++) {
            System.out.println(codes[i] + "\t");
        }
    }
}

冒泡排序
package scanner;

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

public class scanner {
    public static void main (String[] args) {
        // 冒泡排序
        int[] arr = {5,4,3,21,1};
        for (int i = 1; i <= arr.length - 1; i++) {
            for (int j = 0; j < arr.length - i; j++){
                if (arr[j] > arr[j+1]){
                    int temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i] + "\t");
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值