Java入门系列-10-数组

简介:

这篇文章为你搞懂2个问题
1.什么是数组,数组是干嘛用的?
2.数组如何使用?

考试结束后,老师给二狗安排了一项任务,统计班里40名同学的平均分。按照我们之前的做法,我们可以定义40个变量然后再相加除以40求出平均分,但是这样太繁琐了,有没有更好的办法呢?那就是使用 数组。

数组

数组其实也是一个变量,顾名思义存储了一组相同类型的数据,声明一个数组就是在内存空间中分配出一连串的空间。

使用数组需要四个步骤:

1.声明数组 int[] a;

2.分配空间 a=new int[5];

3.赋值 a[0]=8;

4.处理数据 a[0]=a[0]*10;

数组中的元素通过下标进行访问,下标从0开始
数组长度是在分配完空间后是固定不变的

数组中所有的元素必须是相同的数据类型

1.声明数组:告诉计算机数据类型是什么

语法:

数据类型 数组名[];
数据类型[] 数组名;

敲一敲:

public class DemoArray {
    public static void main(String[] args) {
        int[] score;//成绩
        String[] name;//名字
    }
}

2.分配空间:告诉计算机分配几个连续的空间

语法:

数组名=new 数据类型[大小];
或者 声明数组同时并分配空间:
数据类型[] 数组名=new 数据类型[大小];

敲一敲:

public class DemoArray {
    public static void main(String[] args) {
        int[] score;//成绩
        String[] name;//名字
        score=new int[40];
        name=new String[40];
        //声明变量同时并分配空间
        int[] age=new int[40];
    }
}

3.赋值:向分配的空间中放数据

敲一敲:

public class DemoArray {
    public static void main(String[] args) {
        int[] score;//成绩
        String[] name;//名字
        score=new int[40];
        name=new String[40];
        //声明变量同时并分配空间
        int[] age=new int[40];
        name[0]="张三";//向数组中第一个元素存放数据
        name[1]="李四";//向数组中第一个元素存放数据
    }
}

但是这样一个一个去赋值太麻烦了

敲一敲:1.声明数组的同时赋值

public class DemoArray1 {
    public static void main(String[] args) {
        int[] score= {67,55,93};//自动确定长度为3
        String[] name=new String[] {"张三","李四","王五"};
    }
}

敲一敲:2.使用循环从控制台获取信息并赋值

import java.util.Scanner;

public class DemoArray2 {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int[] score=new int[40];
        for (int i = 0; i < score.length; i++) {
            score[i]=input.nextInt();
        }
    }
}

length 是数组的属性,用于获取数组的长度

4.处理数据

敲一敲:遍历数组

public class DemoEachArray {

    public static void main(String[] args) {
        String[] name= {"香蕉","菠萝","西瓜"};
        for (int i = 0; i < name.length; i++) {
            String temp=name[i];
            System.out.println(i+" "+temp);
        }
    }
}

可以打印数组,也可重新赋值等操作

工具类Arrays

Arrays类包含操作数组的各种方法,使用这个类需要
加入一行代码
import java.util.Arrays; 引入后使用。

方法名 说明
sort() 对指定的数组按数字升序进行排序。
toString() 返回指定数组内容的字符串表示形式。
copyOf() 复制指定的数组到一个新数组,并指定新数组的长度

敲一敲:sort的使用

import java.util.Arrays;

public class DemoArraysSort {
    public static void main(String[] args) {
        int[] ages= {33,18,37,55,3};
        Arrays.sort(ages);
        for(int i=0;i<ages.length;i++) {
            System.out.println(i+" "+ages[i]);
        }
    }
}

敲一敲:toString的使用

import java.util.Arrays;

public class DemoArraysToString {
    public static void main(String[] args) {
        String[] name= {"张三","李四","王五","赵六"};
        String result=Arrays.toString(name);
        System.out.println(result);
        double[] money= {55.4,34,66,23.3};
        System.out.println(Arrays.toString(money));
    }
}

敲一敲:copyOf的使用

import java.util.Arrays;

public class DemoArraysCopyOf {
    public static void main(String[] args) {
        int[] ages= {33,18,37,55,3};
        int[] newArray1=Arrays.copyOf(ages, 3);
        System.out.println("新数组:"+Arrays.toString(newArray1));
        int[] newArray2=Arrays.copyOf(ages,8);
        System.out.println("新数组:"+Arrays.toString(newArray2));
    }
}

使用 copyOf() 时,如果指定的副本数组的长度小于源数组的长度,后面的元素都将被截断。如果指定的副本数组的长度大于源数组的长度,多出的元素都将使用默认值。

数组元素默认值

如果一个数组已经指定了长度,但是没有给元素赋值,那么没有赋值的元素都会有默认值

类型 默认值
String null
int 0
double 0.0
boolean false
Object null

敲一敲:体验各种类型的默认值

import java.util.Arrays;

public class DemoDefaultValue {
    public static void main(String[] args) {
        String[] name=new String[10];
        System.out.println("字符串:"+Arrays.toString(name));
        int[] age=new int[10];
        System.out.println("整数:"+Arrays.toString(age));
        double[] money=new double[10];
        System.out.println("小数:"+Arrays.toString(money));
        Object[] obj=new Object[10];
        System.out.println("对象:"+Arrays.toString(obj));
        boolean[] results=new boolean[10];
        System.out.println("布尔值:"+Arrays.toString(results));
        char[] chrs=new char[10];
        System.out.println("字符:"+Arrays.toString(chrs));
        System.out.println((int)chrs[0]);//字符对应的整数
    }
}

试一试:

1.从控制台中输入5个人的年龄,存入数组中,求出最小的年龄

2.将一组乱序的字符排序后,进行升序和逆序输出

搜索关注公众号「享智同行」,第一时间获取技术干货,公众号回复010 获取本次练习答案!

相关文章
|
1天前
|
存储 安全 Java
Java数组(Arrays)详解
Java 中的数组是一种用于存储固定数量同类型数据的高效数据结构,支持连续内存存储和随机访问。数组可以声明并初始化,通过索引访问和修改元素,获取长度,使用循环遍历,支持多维形式,并可通过 `Arrays` 类的方法进行复制和排序。数组具有固定大小和类型安全的特点,但需注意越界等问题。灵活运用数组能显著提升编程效率。
|
10天前
|
Java 程序员 UED
Java中的异常处理:从入门到精通
【9月更文挑战第23天】在Java编程的世界中,异常是程序执行过程中不可避免的事件,它们可能会中断正常的流程并导致程序崩溃。本文将通过浅显易懂的方式,引导你理解Java异常处理的基本概念和高级技巧,帮助你编写更健壮、更可靠的代码。我们将一起探索如何捕获和处理异常,以及如何使用自定义异常来增强程序的逻辑和用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的见解和实用的技巧。
28 4
|
15天前
|
存储 Java 数据处理
Java 数组的高级用法
在 Java 中,数组不仅可以存储同类型的数据,还支持多种高级用法,如多维数组(常用于矩阵)、动态创建数组、克隆数组、使用 `java.util.Arrays` 进行排序和搜索、与集合相互转换、增强 for 循环遍历、匿名数组传递以及利用 `Arrays.equals()` 比较数组内容。这些技巧能提升代码的灵活性和可读性,适用于更复杂的数据处理场景。
|
15天前
|
存储 Java
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
34 2
|
7天前
|
存储 Java
java数据结构,线性表顺序存储(数组)的实现
文章介绍了Java中线性表顺序存储(数组)的实现。线性表是数据结构的一种,它使用数组来实现。文章详细描述了线性表的基本操作,如增加、查找、删除、修改元素,以及其他操作如遍历、清空、求长度等。同时,提供了完整的Java代码实现,包括MyList接口和MyLinearList实现类。通过main函数的测试代码,展示了如何使用这些方法操作线性表。
|
2月前
|
算法 Java 开发者
Java 编程入门:从零到一的旅程
本文将带领读者开启Java编程之旅,从最基础的语法入手,逐步深入到面向对象的核心概念。通过实例代码演示,我们将一起探索如何定义类和对象、实现继承与多态,并解决常见的编程挑战。无论你是编程新手还是希望巩固基础的开发者,这篇文章都将为你提供有价值的指导和灵感。
|
2月前
|
存储 Java 程序员
Java中的集合框架:从入门到精通
【8月更文挑战第30天】在Java的世界里,集合框架是一块基石,它不仅承载着数据的存储和操作,还体现了面向对象编程的精髓。本篇文章将带你遨游Java集合框架的海洋,从基础概念到高级应用,一步步揭示它的奥秘。你将学会如何选择合适的集合类型,掌握集合的遍历技巧,以及理解集合框架背后的设计哲学。让我们一起探索这个强大工具,解锁数据结构的新视角。
|
2月前
|
Java
Java数组的应用场景
Java数组的应用场景
29 1
|
2月前
|
存储 机器学习/深度学习 Java
Java数组
Java数组
27 1
|
2月前
|
Java 程序员 UED
Java中的异常处理:从入门到精通
【8月更文挑战第28天】在Java编程的世界里,异常处理是一块基石,它确保了程序的健壮性和可靠性。本文将通过深入浅出的方式,带你了解Java异常处理的基本概念、分类、以及如何有效地捕获和处理异常。我们将一起探索try-catch-finally结构的奥秘,并学习如何使用throws关键字声明方法可能会抛出的异常。此外,我们还会讨论自定义异常类的创建和使用,以及最佳实践。无论你是Java新手还是有一定经验的开发者,这篇文章都将为你提供宝贵的知识,帮助你编写出更加稳定和可靠的代码。
下一篇
无影云桌面