欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 大数据——一维数组

程序员文章站 2022-04-11 13:05:40
一维数组理解数组定义数组数组元素的表示和赋值数组的初始化遍历数组示例一示例二示例三示例四示例五增减删除数组增加元素数组删除元素理解数组在Java中,数组是用来存储一组相同类型数据的数据类型。当数组初始化完毕后,java为数组在内存中分配一段连续的空间,其在内存中开辟的空间也将之固定,此时数组的长度就不能再发生改变。即使数组中没有保存任何数据,数组所占据的空间依然存在。(现在所说的数组暂时都是一维数组)定义数组在Java中,定义数组的语法有如下两种。数据类型[] 数组名=new 数据类型[数组长度]...

理解数组

在Java中,数组是用来存储一组相同类型数据的数据类型。当数组初始化完毕后,java为数组在内存中分配一段连续的空间,其在内存中开辟的空间也将之固定,此时数组的长度就不能再发生改变。即使数组中没有保存任何数据,数组所占据的空间依然存在。(现在所说的数组暂时都是一维数组)

定义数组

在Java中,定义数组的语法有如下两种。
数据类型[] 数组名=new 数据类型[数组长度];
或者:
数据类型 数组名[]=new 数据类型[数组长度]
定义数组时一定要指定数组名和数组类型。
必须书写“[]”,表示定义了一个数组,而不是一个普通的变量。
“[数组长度]”决定连续分配的空间的个数,通过数组的length属性可获取此长度。
数组的类型数据用于确定分配的每个空间的大小。

        //声明
        int[] a;
        String b[];
        double []c;
        //分配空间,使用new关键字来分配空间,
        //new关键字是java中优先级最高的。
        a=new int[5];
        b=new String[6];
        c=new double[4];
        

数组元素分配的初始值
1.数组元素的类型是基本类型中的整数类型(byte、short、int和long),则数组元素的值是0。
2.数组元素的类型是基本类型中的浮点类型(float、double),则数组元素的值是0.0。
3.数组元素的类型是基本类型中的字符类型(char),则数组元素的值是’\u0000’。
4.数组元素的类型是基本类型中的布尔类型(boolean),则数组元素的值是false。
5.数组元素的类型是引用类型(类、接口和数组),则数组元素的值是null。

数组元素的表示和赋值

由于定义数组时内存分配的是连续的空间,所以数组元素在数组里顺序排列编号,该编号即元素下标,它标明了元素在数组中的位置。首元素的编号规定为0,因此,数组的下标依次为0、1、2、3、4······依次递增,每次增长数是1。数组中的每个元素都可以通过下标来访问。
获得数组元素的语法格式如下。
数组名[下标值]

        //赋值
        a[0]=10;
        a[1]=14;
        a[2]=18;
        a[3]=24;
        a[4]=33;
        a[5]=45;

数组的初始化

所谓的数组的初始化,就是在定义数组的同时一并完成赋值的操作。
数组初始化的语法格式如下、
数据类型[]数组名={值1,值2,值3,······,值n};
或者:
数据类型[]数组名=new 数据类型[]{值1,值2,值3,······,值n};

        //声明的同时分配空间
        char[] ch=new char[10];
        float f[]={11.1f,22.2f};//声明、分配空间并赋值
        int []d=new int[]{1,2,3};

遍历数组

在编写程序时,数组和循环往往结合在一起使用,可以大大的简化代码,提高程序编写效率。通常使用for循环遍历数组。

示例一

Text1:计算30位同学的平均分,同时打印每一个分数。

public class Text1 {
    public static void main(String[] args) {
        int[] scores=new int[30];
        //使用随机数对数组赋值
        for (int i = 0; i <30 ; i++) {
            scores[i] = (int) (Math.random() * 80 + 20);
        }
        //遍历查看数组中每一个元素
        System.out.print("[");
        for (int i = 0; i <scores.length ; i++) {
            if (i == scores.length - 1) {
                System.out.println(scores[i]);
                break;
            }
            System.out.print(scores[i]+", ");
        }
        System.out.print("]");
        //计算平均分
        double sum=0;
        for (int i = 0; i <scores.length ; i++) {
            sum+=scores[i];
        }
        System.out.println("总分为:" + sum);
        System.out.println("平均分为:"+sum/scores.length);
        //增强for的用法
      /*  System.out.print("[");
        for (int a:scores) {
            System.out.println(a+",");
        }
        System.out.println("]");*/
    }
}

输出结果:
荐
                                                        大数据——一维数组

示例二

Text2:有一个数列:8,4,2,1,23,344,12
(1)循环输出数列的值。
(2)求数列中所有数值的和。
(3)猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数 。

import java.util.Scanner;
public class Text2 {
    public static void main(String[] args) {
        int[] a={8,4,2,1,23,344,12};
        int sum=0;
        for (int i = 0; i <a.length ; i++) {
            System.out.print(a[i]+"\t");
            sum+=a[i];
        }
        System.out.println();
        System.out.println("所有数值和是:"+sum);
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个数:");
        int num=sc.nextInt();
        int i = 0
        for (; i <a.length ; i++) {
            if(num==a[i]){
                System.out.println("包含这个数:"+num);
                break;
            }
            }if(i==a.length){
            System.out.println("不包含这个数");
        }
    }
}

输出结果:
荐
                                                        大数据——一维数组

示例三

Text3:从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分。

import java.util.Scanner;
public class Demo3 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int[] scores=new int[5];
        for (int i = 0; i <scores.length ; i++) {
            System.out.println("请输入第" + (i + 1) + "个值");
            scores[i]=sc.nextInt();
        }
        for (int i = 0; i <scores.length ; i++) {
            System.out.print(scores[i]+",");
        }
        System.out.println();
        //求最大值
        int max=scores[0];
        for (int i = 0; i <scores.length ; i++) {
            if(scores[i]>max){
                max=scores[i];
            }
        }
        System.out.println("最大值为:"+max);
    }
}

输出结果:
荐
                                                        大数据——一维数组

示例四

Text4:求出4家店的最低手机价格。
荐
                                                        大数据——一维数组
步骤:
1.定义数组存储价格,并利用循环输入
2.定义变量min保存当前的最低价
3. 将min和数组中的其余元素依次比较

public class Text3 {
    public static void main(String[] args) {
        int[] a = {3000, 3150, 2900, 2950};
        for (int i = 0; i < a.length; i++) {
            System.out.println("第"+(i+1)+"店的价格:"+a[i]);
        }
        System.out.println();
        int min = a[0];
        for (int i = 0; i < a.length; i++) {
            if (a[i] < min) {
                min = a[i];
            }
        } System.out.println("最低的价格是"+min);
    }
}

输出结果:
荐
                                                        大数据——一维数组

示例五

Text5:数组存储5笔购物金额,在控制台输出并计算总金额
荐
                                                        大数据——一维数组

import java.util.Scanner;
public class Text4 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
            System.out.println("请输入会员本月的消费记录");
            double[] money=new double[5];
            double sum=0;
        for (int i = 0; i < money.length; i++) {
            System.out.print("请输入第" + (i + 1) + "笔购物金额:");
            money[i] = sc.nextDouble();
            sum=sum+money[i];
        }
        System.out.println("序号"+"\t"+"\t"+"金额(元)");
        for (int i = 0; i < money.length; i++) {
            System.out.println((i+1)+"\t"+"\t"+money[i]);
        }
        System.out.println("总金额"+"\t"+"\t"+sum);
    }
}

输出结果:
荐
                                                        大数据——一维数组

增删改查

数组范围内:
增:数组的定义、赋值
删:程序运行结束
改:数组元素的重新赋值,或者地址改变
查:查看数组的地址和元素的值
长度范围外的:长度要变化(新的数组)
增:元素个数的增加
删:元素个数的减少
改:修改其中的元素

数组增加元素

Text6:有一组学员的成绩{99,85,82,63, 60},将它们按降序排列。要增加一个学员的成绩,将它插入成绩序列,并保持降序。
程序分析:1、将成绩保存在数组中。2、通过比较找到插入位置。3、该位置元素往后移一位。4、插入新成绩。

import java.util.Arrays;
import java.util.Scanner;
public class Demo4 {
    public static void main(String[] args) {
        int[] a={99,85,82,63,60};
        int[] b=new int[6];
        for (int i = 0; i < a.length; i++) {
            b[i]=a[i];
        }
        System.out.println(Arrays.toString(b));//把数组转成String字符串
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个数:");
        int num=sc.nextInt();
        boolean isInsert=false;
        for (int i = b.length-2; i >=0 ; i--) {//从后向前遍历
            if(num>b[i]){
                b[i+1]=b[i];//下标后移
            }else{
                b[i+1]=num;
                isInsert=true;
                break;
            }
        }if(isInsert==false){//该数最大,放在首位
            b[0]=num;
        }
        System.out.println(Arrays.toString(b));
    }
}

输出结果:
荐
                                                        大数据——一维数组

数组删除元素

Text7:有一组学员的成绩{99,85,82,63, 60},输入一个下标,删除一个成绩。

import java.util.Arrays;
import java.util.Scanner;
public class Demo5 {
    public static void main(String[] args) {
        int[] a={99,85,82,63,60};
        int[] b=new int[4];
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要删除的下标:");
        int num=sc.nextInt();
        int j=0;
        for (int i = 0; i < a.length; i++) {
            if(i==num)continue;;
            b[j]=a[i];
            j++;
        }
        System.out.println(Arrays.toString(b));
    }
}

输出结果:
荐
                                                        大数据——一维数组

本文地址:https://blog.csdn.net/dsjia2970727/article/details/107346190