首页 > 编程语言 >5.Java 数组(一维数组、二维数组、数组实例实操)

5.Java 数组(一维数组、二维数组、数组实例实操)

时间:2024-11-06 19:15:40浏览次数:3  
标签:arr Java int System length 实操 数组 public

一、数组

1、基本介绍
【数据类型】[] 【数组名】 = new 【数据类型】[【长度】];
【数据类型】[] 【数组名】 = {【元素 1】, 【元素 2】...};
【数据类型】[] 【数组名】 = new 【数据类型】[]{【元素 1】, 【元素 2】...};
  1. 数组中的元素可以是任何数据元素,包括基本类型和引用类型,但是不能混用

  2. 数组创建后,如果没有赋值,有默认值

  3. 使用数组步骤:声明数组并开辟空间 -> 给数组赋值 -> 使用数组

  4. 数组的下标是从 0 开始的

  5. 数组的下标必须在指定范围内,否则报下标越界异常

  6. 数组属于引用数据类型(对象)

2、注意事项
  • 数组赋值机制:数组在默认情况下是引用赋值,赋的值是地址

二、二维数组

int[][] arr = {}; // 推荐
int[] arr[] = {};
int arr[][] = {};
  • 二维数组实际上由多个一维数组组成,它的各个一维数组的长度可以相同,也可以各不相同

三、实例实操

1、冒泡排序
  • BubbleSortTest.java
package com.my.test;

public class BubbleSortTest {
    public static void main(String[] args) {
        int[] arr = {13, 5, 45, 35, 52};

        // 打印原数组
        for(int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "  ");
        }
        System.out.println();

        // 定义中转变量
        int temp = 0;

        // 开始冒泡排序
        for (int i = 0; i < arr.length - 1; i++) { // 排序轮数,arr.length - 1
            for (int j = 0; j < arr.length - i - 1; j++) { // 该轮排序次数,arr.length - i - 1
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }

        // 打印冒泡排序后的数组
        for(int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "  ");
        }
    }
}
2、数组扩容
  • ArrayExpandTest.java
package com.my.test;

public class ArrayExpandTest {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        int[] newArr = new int[arr.length + 1];

        // 将 arr 中的数据存入 newArr
        for (int i = 0; i < arr.length; i++) {
            newArr[i] = arr[i];
        }

        // 存入扩容的数据
        newArr[arr.length] = 4;

        // 让 arr 的地址指向 newArr 的地址
        arr = newArr;

        // 打印扩容后的数组
        for(int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "  ");
        }
    }
}
3、顺序查找
  • SequentialSearchTest.java
package com.my.test;

public class SequentialSearchTest {
    public static void main(String[] args) {
        String[] arr = {"东", "西", "南", "北"};

        // 查找元素的下标变量,默认为 -1
        int index = -1;

        // 查找的元素
        String target = "西";

        // 开始顺序查找
        for(int i = 0; i < arr.length; i++) {
            if (target.equals(arr[i])) {
                index = i;
                break;
            }
        }

        // 判断是否查找到
        if (index != -1) {
            System.out.println("恭喜你找到了!");
            System.out.println("目标元素:" + target + ",下标:" + index);
        } else {
            System.out.println("该目标元素不存在!");
        }
    }
}
4、返回数组
  • 注意返回数组的定义格式
package com.my.test;

import java.util.Arrays;

public class GetArrayTest {
    public static void main(String[] args) {
        int[] array1 = getArray1();
        int[] array2 = getArray2();
        System.out.println(Arrays.toString(array1));
        System.out.println(Arrays.toString(array2));
    }

    public static int[] getArray1() {
        return new int[]{ 1, 2, 3 };
    }

    public static int[] getArray2() {
        int[] res = { 1, 2, 3 };
        return res;
    }
}
  • 错误的定义格式
public static int[] getArray3() {
    return { 1, 2, 3 };
}

标签:arr,Java,int,System,length,实操,数组,public
From: https://blog.csdn.net/weixin_52173250/article/details/143577902

相关文章

  • c语言中声明数组时, 元素个数必须使用常量表达式
     001、[root@PC1test]#lstest.c[root@PC1test]#cattest.c##测试程序#include<stdio.h>intmain(void){intvar1=5;//初始化一个变量var1intarray1[var1]={3,5,8,4,9};//初始化数组return0;}[......
  • LeetCode100之接雨水(42)--Java
    1.问题描述        给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。        示例1输入:height=[0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下......
  • 【Java SE语法】抽象类(abstract class)和接口(interface)有什么异同?
    目录1.抽象类与接口的基本概念1.1 抽象类1.2接口2.抽象类与接口的异同2.1相同点2.2不同点3.拓展知识:多态与设计模式3.1多态3.2设计模式4.结论        在软件工程中,设计模式和代码结构的选择对于构建可维护、可扩展的系统至关重要。抽象类(Abstrac......
  • Java网络安全常见面试题
    列举常见的WEB攻击,及解决方案一、SQL注入1、什么是SQL注入攻击者成功的向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了攻击者精心构造的恶意代码。2、如何预防SQL注入使用预编译语句(Prepa......
  • Leetcode刷题Python之3254.长度为K的子数组的能量值I
    提示:关于数组子问题的挑战,涉及能量值的计算。文章目录一、问题描述示例二、解题思路三、代码实现1.引入库2.代码解释总结一、问题描述给定一个长度为n的整数数组nums和一个正整数k,我们需要计算每个长度为k的子数组的能量值。能量值的定义如下:如果子数......
  • LeetCode每日一题--3254.长度为k的子数组的能量值I
    代码解释:初始化结果数组:ans初始化为-1,因为如果子数组不满足条件,其能量值即为-1。连续递增子序列长度计数:cnt用于记录当前连续递增子序列的长度。遍历数组:使用enumerate遍历nums,同时获取元素的索引i和值x。更新连续递增子序列长度:如果当前元素是数组的第一......
  • Java键盘录入
    键盘录入next()、nextLine()可以接受任意数据,但是都会返回一个字符串;nextInt()只能接受整数,键盘录入小数或者其他字母,就会报错;nextDouble()能接收整数和小数,但是都会看做小数返回,录入字母会报错。注意:next()、nextInt()、nextDouble()在接收数据的时候,会遇到空格,回车,制表符......
  • java计算机毕业设计基于的大学宿舍管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着大学教育的不断发展,高校规模日益扩大,学生数量不断增加,传统的宿舍管理方式面临着巨大的挑战。传统的手工登记和管理模式存在效率低下、信息容......
  • java计算机毕业设计最优网络购票系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着信息技术的飞速发展,网络购票系统在现代社会中的应用日益广泛。在交通、娱乐等多个领域,人们对于便捷、高效的购票方式需求不断增加。传统的购......
  • 使用 【Java】 集成 【Elasticsearch】:详细教程
    Elasticsearch是一个开源的分布式搜索引擎,它能够快速地存储、搜索和分析大量的文本数据。它基于ApacheLucene构建,广泛应用于日志分析、全文搜索、推荐系统等场景。本文将详细介绍如何在Java项目中集成Elasticsearch,包括如何配置、索引文档、查询数据、以及与Elasticsea......