Java基础(六)数组

这篇具有很好参考价值的文章主要介绍了Java基础(六)数组。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数组

一、一维数组

1. 数组

数组是具有相同数据类型且按照一定次序排列的一组变量的集合体。即一个变量名表示一批数据。
Java为数组在内存中分配一段连续的空间,这段空间中存储数据的个数是固定的。

  • 数组元素
    构成一个数组的每一个数据称为数组元素。
  • 数组下标
    下标是数组元素在数组中的位置。从0开始,也叫数组索引。
  • 数组大小
    数组中元素的个数叫做数组的大小,也叫做数组的长度。

2. 数组使用步骤

  • 定义数组
    格式:数据类型 数组名[];数据类型[] 数组名;
int scores[];
int[] scores;

定义数组的本质是向 JVM 申请内存,JVM 将内存划分为几个区域,其中包含了堆和栈,不同的区域储存不同类别的数据,JVM 将数组的名称存储在栈中,栈是一种先进后出的数据结构,因此数组名在栈底。

  • 为数组元素分配内存

要让系统为数组元素分配存储空间,必须指出数组元素的个数,并通过 new 运算符为元素分配内存空间。

格式:数组名 = new 数组类型[数组长度];

scores = new int[5];

可以将定义数组和数组元素分配内存合并,例如:

int[] scores = new int[5];

分析:

  • 程序运行到 main 方法,main 方法进栈;
  • 声明数组,JVM 会在堆里分配内存;
  • scores 其实指向的就是堆里面的内存地址;
  • main 方法里面的代码执行完毕,main 方法出栈。
  • 数组元素初始化

数组声明并为数组元素分配空间完成后,必须为数组元素初始化赋值,才能使用数组元素。如果没有为数组元素初始化,那么数组元素也是默认值,各种类型数组元素默认值如下表:

数组元素类型 默认初始值
byte, short, int, long 0
float, double 0.0
chat ‘\u0000’ (空字符)
boolean false
引用数据类型 null

示例: 访问数组元素和赋值

import java.util.Arrays;

public class learn01 {
    public static void main(String[] args) {
        int[] score = new int[5];
        for (int i = 0; i < score.length; i++) {
            score[i] = i + 67;
        }
        for (int i = 0; i < score.length; i++) {
            System.out.println("score[" + i + "] = " + score[i]);
        }
        System.out.println(Arrays.toString(score));
    }
}

定义数组、为数组元素分配内存、数组元素初始化,这三步可以合并一起写

int[] scores = new int[]{12,56,34,78};
int[] scores = {12,56,34,78};

重要提示:
(1) Java将数据类型分为两大类,一类是基本数据类型,一类是引用数据类型。
(2) 它们的区别在于基本数据类型的变量中储存的是真实的数据值(如 scores[0],其真实数据 12);而引用数据类型的变量中储存的是内存地址编号(如上述例子中的组名 scores 就是引用数据类型,其值为内存地址编号)

  • 使用数组

示例: 求平均值

public class learn03 {
    public static void main(String[] args) {
        int[] scores = new int[]{67,78,65,88,79};
        int sum = 0;
        for (int i = 0; i < scores.length; i++) {
            sum += scores[i];
        }
        int avg = sum / scores.length;
        System.out.println(avg);
    }
}
  • 使用增强 for 遍历数组元素

JDK1.5 及其之后的版本中提供了增强 for 循环语句,实现了 lterable 接口的类都可以使用 for 循环进行元素的迭代。

public class learn03 {
    public static void main(String[] args) {
        int[] scores = {67,78,65,88,79};
        int sum = 0;
        for (int s :scores){
            sum += s;
        }
        int avg = sum / scores.length;
        System.out.println(avg);
    }
}
  • 数组排序
    • 冒泡排序:通过相邻元素的大小进行笔记,每一轮将一个最小或最大的数放到队列的最后面

示例: 从键盘输入5名学生的身高,使用冒泡排序,按照从高到低顺序输出每一位学生的身高文章来源地址https://www.toymoban.com/news/detail-632417.html

public class BubbleSorting {
    public static void main(String[] args) {
        int[] heights = {155, 165, 175, 170, 180};
        // 冒泡排序
        for (int i = 0; i < heights.length - 1; i++) {
            for (int j = 0; j < heights.length - 1 -i; j++) {
                if (heights[j] > heights[j + 1]){
                    int temp = heights[j];
                    heights[j] = heights[j + 1];
                    heights[j + 1] = temp;
                }
            }
        }
        for (int height: heights) {
            System.out.println(height);
        }
    }
}

到了这里,关于Java基础(六)数组的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java基础 |数组排序

    所有知识点均来源于《Java从入门到精通》(第六版)。 他排序数组的过程中总将较小的数往前排,较大的数往后放,类似水中气泡往上升的动作,所以叫冒泡排序。 基本思想是对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把较大的元素移

    2024年01月25日
    浏览(32)
  • Java基础语法(五):数组

    目录 前言 一、数组什么? 总结 Java 数组是一种非常重要的数据结构,它可以存储一系列同类型的数据,且具有高效的遍历和访问能力,被广泛应用于各种领域。本文将介绍 Java 数组的基本概念、声明和初始化、访问元素、数组长度、多维数组、以及常用方法等内容。 Java 数

    2023年04月22日
    浏览(34)
  • 两个数组的交集-C语言/Java

    描述         给定两个数组  nums1  和  nums2  ,返回  它们的交集  。输出结果中的每个元素一定是  唯一  的。我们可以  不考虑输出结果的顺序。 (1 = nums1.length, nums2.length = 1000,0 = nums1[i], nums2[i] = 1000) 示例1 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2] 示例2 输入:

    2024年02月11日
    浏览(29)
  • 〔004〕Java 基础之数组、方法

    数组: 就是一个容器,用来存储一批 同种类型 的数据 静态化数组: 就是预先填入数组的元素,知道数组有哪些值 格式: 定义 数据类型[] 数组名 也可以写成 数据类型 数组名[] 注意: 什么类型的数组只能存放什么类型的数据 方式一: 数组类型[] 数组名 = new 数组类型{元素

    2024年02月04日
    浏览(33)
  • 寻找数组的中心下标-C语言/Java

    描述         数组  中心下标   是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为  0  ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标

    2024年02月13日
    浏览(36)
  • java基础:求数组的最值

    方法一:顺序查找 先假设数组第一个元素为最值,然后和数组里的数按顺序进行比较得出最值,所以叫顺序查找。 代码如下 运行结果如下 方法二:使用冒泡排序的方法 什么是冒泡排序 冒泡排序是一种简单的排序算法,其基本思想是多次遍历待排序的元素,比较相邻的两个

    2024年01月19日
    浏览(36)
  • Java---第四章(数组基础,冒泡排序,二分查找,多维数组)

    概念: 数组是编程语言中的一种常见的数据结构,能够存储一组相同类型的数据 作用: 存储一组相同类型的数据,方便进行数理统计(求最大值,最小值,平均值以及总和),也可以进行信息的展示 定义: 第一种: 只能在定义数组同时赋值时使用 第二种: 可以在定义数组

    2024年02月09日
    浏览(38)
  • JAVA数组元素反转的三种写法------JAVA入门基础教程

    int[] arr = new int[]{34,54,3,2,65,7,34,5,76,34,67}; for(int i = 0;i arr.length/2;i++) {     int temp = arr[i];     arr[i] = arr[arr.length - 1 - i];     arr[arr.length - 1 - i] = temp; } for(int i = 0;i arr.length;i++) {     System.out.print(arr[i] + \\\"t\\\"); } System.out.println(); //互换方法2 int[] newArr = new int[arr.length]; for(int i = arr.l

    2023年04月17日
    浏览(33)
  • 【Java 基础】引用型数组、Java 继承、super 关键字详解

    《 Java 零基础入门到精通 》 专栏持续更新中。通过本专栏你将学习到 Java 从 入门 到 进阶 再到 实战 的全套完整内容,所有内容均将集中于此专栏。无论是初学者还是有经验的开发人员,都可从本专栏获益。 订阅专栏后添加我微信或者进交流群,进群可找我领取 前端/Java

    2024年02月03日
    浏览(38)
  • Java数组详解 -- 基础知识与常用操作

    为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。 (博客的参考源码以及可以在我主页的资源里找到,如果在学

    2024年02月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包