Java基础(2)-数组介绍

数组:数据的有序集合 在编程中,数组是一种常用的数据结构,用于存储相同类型的元素。它提供了便捷的访问和操作方式,可以高效地处理大量的数据。本文将介绍数组的基本概念、特点以及在实际编程中的应用,并提供具体的代码示例。 阅读详情


前言:Java语言中有许多数据结构,而数组是最常用的也是十分重要的数据结构之一,本文将介绍数组的相关知识以及相关实现和操作

一、什么是数组

数组是应用最为广泛的存储结构,它被植入到绝大部分的编程语言当中,由于数组十分的简单易懂,所以可作为介绍数据结构的起步点。在Java语言中,数组可用于存储对象以及基本数据类型,是位于一段线性内存空间的一级存储单位.

二、数组的分类

数组可大致分为无序数组和有序数组。无序数组,即数组中的数是无序的;有序数组,即数组中的数是按一定的顺序排列,如升序或者降序排列。无序数组和有序数组都是在初始化完成时确定长度,之后都无法再改变,即定长。有序数组和无序数组的下标都从0开始。

三、无序数组

无序数组,即数组中的元素没有按顺序排列。原始的数组就是很典型的无序数组,在初始化时即确定长度,如果初始化的是int型数组,那么没有数据的元素区域以0表示,如果初始化的是String型数组,没有数据的元素区域以null表示。

1、数组的两种常用初始化方式
 //创建数组的方式一:指定长度,并一一赋值
        //创建一个长度为10的整型无序数组
        int[] array1 = new int[10];
        //插入10条数据
        array1[0] = 19;
        array1[1] = 12;
        array1[2] = 13;
        array1[3] = 20;
        array1[4] = 15;
        array1[5] = 12;
        array1[6] = 17;
        array1[7] = 18;
        array1[8] = 12;
        array1[9] = 15;
    //创建数组的方式二:不指定长度,并且在初始化时赋值
        //创建一个长度为10的整型无序数组
        int[] array2 = {13,16,19,14,20,16,13,18,19,20};
2、判断数组中是否存在某个值
public void exist(int[] array,int value){
        for (int i = 0; i < array.length;i ++) {
            if(array[i] == value){
                System.out.println(value+"存在");
                return;
            }
        }
        //遍历完成后,仍找不到该值
        System.out.println(value+"不存在");
    }
3、删除某个值

由于数组并没有对应的删除操作,对于int型数组来说,0表示空值,所以可以封装方法来完成‘伪删除’

public void delete(int[] array,int value){
        //判断是否存在
        for (int i = 0; i < array.length; i++) {
            if(array[i] == value){
                //该值存在,将该值放到数组尾部 1 2 value 3 4 ---> 1 2 3 4 value
                for (int j = i; j < array.length - 1; j++) {
                    array[j] = 0;
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
    } 
4、排序

可使用最简单的冒泡

public void sort(int[] array,String flag){
        if(flag.equals("DESC")){
            //flag == DESC 降序
            //冒泡排序,小的排到后面
            for (int i = 1; i < array.length ; i++) {
                //第一层循环
                for (int j = 0; j < array.length - i; j++) {
                    //第二层比较
                    if(array[j] < array[j + 1]){
                        //前者比后者小,交换
                        int temp = array[j];
                        array[j] = array[j + 1];
                        array[j + 1] = temp;
                    }
                }
            }
        }else if(flag.equals("ASC")){
            //升序排列
            for(int i = 1;i < array.length;i ++){
                for (int j = 0; j < array.length - i; j++) {
                    if(array[j] > array[j + 1]){
                        int temp = array[j];
                        array[j] = array[j + 1];
                        array[j + 1] = temp;
                    }
                }

            }
        }
    }
Java数组与GUI编程基础教程 本文是Java 2编程的入门介绍,涵盖了数组初始化、GUI组件使用以及异常处理等基础知识。通过实际代码示例,展示了如何使用数组、JTextArea、异常处理机制来创建交互式应用程序。 阅读详情

相关推荐

分别对无序数组和有序数组建立二叉树,实现遍历和查找

关于二叉树的程序,分别对无序数组和有序数组建立二叉树,实现遍历和查找。

【数据结构与算法】之数组

【数据结构与算法】之数组数组一、什么是数组(一)数组的定义(二)数组的分类二、为什么要用数组(一)数组的优点(三)数组的缺点三、如何操作数据(一)有序数组(二)有序数组 数组 前言:最近把 Java 复习了一遍,有时间就捋一捋数据结构的知识,前面的数组、链表、栈、队列都相对容易理解,但是整理成文章,也要花一些时间。 一、什么是数组 (一)数组的定义 数组是多个相同类型 的数据按一定顺序排列的集合,数组是使用最广泛的数据储存结构。因为创建数组会在内存中开辟一整块连续的空间,数组名指向这块连续空间的首地址。所以

m0_53784151的博客 1597

Lumerical INTERCONNECT 中的自相位调制 (SPM) 仿真实践指南

本文详细介绍了在Lumerical INTERCONNECT中进行自相位调制(SPM)仿真的实践指南。从SPM的基础物理原理出发,深入解析非线性薛定谔方程和克尔效应,到INTERCONNECT中NLSE波导元件的配置技巧,以及时域与频域中SPM效应的观测方法。文章还提供了常见问题排查和进阶联合仿真技巧,帮助用户高效完成从仿真到实测的校准过程。

weixin_42565652的博客 189

数组、数组操作、无序数组、有序数组、二分法

数组、数组操作、无序数组、有序数组、二分法

u012331153的专栏 1671

linux 4.19在龙芯平台上编译出错解决方法

OS: Loongnix server 1.7 工具链为:系统自带的gcc-4.8.5 和 gcc-7.3 平台:3A3000/3A4000 源码:kernel: 4.19 编译步骤 ··· make loongson3_defconfig make -j4 ··· 出错信息: HOSTCC arch/mips/boot/compressed/calc_vmlinuz_load_addr arch/mips/boot/compressed/head.S: Assembler messages: arch/m

sense的专栏 1125

java实现自动发送微信QQ消息(可发图片)

自动发送微信/QQ/微博等消息 一:功能:实现发送QQ/微信/微博消息,程序控制。 效果演示(实现自动发生QQ微信消息给女友,发微博信息也可以就不演示了) 二:原理讲解:将剪贴板的内容给发送到QQ微信中去,复制粘贴发送。 模拟真实操作进行发送信息。 三:前期准备,软件安装,及初步测试。...

XURUNFA950827的博客 1万+

java手撸数据结构--数组(无序、有序、稀疏)

java手撸数据结构–数组(无序、有序、稀疏) 数组是java语言内置的数据类型,他是一个线性的序列,所以可以快速访问其他的元素,数组和其他语言不同,当你创建了一个数组时,他的容量是不变的,而且生命周期也是不能改变的,还有JAVA数组会做边界检查,如果发现有越界现象,会报RuntimeException异常错误,当然检查边界会以效率为代价。 数组的局限性分析 插入快:对于无序数组,即元素没有按照一定顺序排列,只是按照插入的顺序排列。无序数组增加一个元素很简单,只需要在数组末尾添加元素即可,但有序数组却不一

qq_41974343的博客 1624

Photoshop实战技巧(9)——高效去除复杂水印的五种进阶方法

本文详细介绍了Photoshop中高效去除复杂水印的五种进阶方法,包括色阶通道爆破法、频率分离高阶应用、智能填充+手动修复组合拳等专业技巧。针对半透明水印、密集文字水印等复杂场景,提供分步操作指南和实战案例,帮助用户精准去除水印同时保留原始图像细节,大幅提升工作效率。

cake8的博客 964

有序数组和无序数组

大O表示法  O(1):优秀。例如无须数组插入。  O(logN):良好。例如有序的二分查找。  O(N):及格。例如无序数组的删除,有序数组的删除和插入,线性查找。  O(N2):不及格。例如冒泡排序。总结有序数组和无序数组  有序数组:插入+ 查找 +删除 = O(N) +O(logN)+O(N);  无序数组:插入 + 查找 + 删除 = O(1) + O(N) + O(N);  所以在数据...

大腮家小头的博客 2510

Proteus仿真实战:用AT89C51+L298N搭建直流电机PID调速系统(附完整工程文件)

本文详细介绍了使用Proteus仿真平台结合AT89C51单片机和L298N驱动模块搭建直流电机PID闭环调速系统的全过程。从硬件选型、电路连接到PID算法实现与参数整定,提供了完整的开发指南和工程文件,帮助读者快速掌握闭环调速系统的设计与调试技巧。

weixin_28724661的博客 449

SPICE仿真软件:HSPICE_(22).HSPICE仿真案例分析

通过上述案例分析,我们可以看到HSPICE仿真软件在不同电路类型和仿真场景中的应用。无论是简单的直流分析、交流分析还是复杂的暂态分析,HSPICE都能提供详细的仿真结果,帮助我们更好地理解和优化电路设计。希望这些案例能够为读者提供实用的参考和指导,进一步提升使用HSPICE进行电路仿真的能力。输入文件的编写:确保输入文件格式正确,使用注释来解释每一部分的内容。分析类型的选择:根据电路的特点选择合适的分析类型,如.DC.AC和.TRAN。输出结果的设置:使用.print命令来指定需要输出的节点电压和支路电流。

kkchenjj的博客 1309

java byte数组转int数组_JAVA基础——数组

Java 数组如果你学过一种编程语言,不过是c,php,go,JavaScript,对数组一定不陌生;对于每一门编程语言来说数组都是重要的数据结构之一,但不同语言对数组的实现及处理也不尽相同。Java语言中提供的数组是用来存储固定大小的同类型元素。你可以声明一个数组变量,如int[100]来代替直接声明100个独立变量;下面为大家为大家介绍Java数组的声明、创建和初始化。声明数组变量首先必须声明...

weixin_42299472的博客 649

打破RK3588 GPIO中断响应延迟的枷锁,开启高效编程

本文针对RK3588芯片在智能安防和工业自动化应用中出现的GPIO中断响应延迟问题展开深入分析。通过硬件原理剖析,发现延迟主要源于中断控制器优先级设置、线路干扰等硬件因素,以及中断处理函数复杂、内核调度延迟等软件问题。提出硬件优化方案包括合理布局布线、电源稳定设计,软件层面则通过精准配置设备树、精简中断处理函数、利用工作队列等内核机制进行优化。测试结果显示,优化后中断响应延迟从50-80ms降至10-20ms,高负载下也能稳定在50ms以内。文章最后展望了AI技术在中断调度中的潜在应用价值。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 364

java数组如何赋值_java数组如何赋值

Java 语言中数组必须先初始化,然后才可以使用。所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值。初始化数组有以下 3 种方式:1)使用 new 指定数组大小后进行初始化使用 new 关键字创建数组,在创建时指定数组的大小。语法如下:type[] arrayName = new int[size];示例:int[] number = new int[5];number[0]...

weixin_33598481的博客 1万+

Neo4j:入门基础(二)之导入CSV文件

导入CSV文件的方式  主要的两种方式如下:   1、使用 Cypher 命令LOAD CSV,这种方式可以处理中小型数据(可达10 million条记录)   2、使用批量导入工具neo4j-admin ,用来直接导入大数据集 三、上述方式具体导入过程   1、Cypher 命令LOAD CSV 参数 1、USING PERIODIC COMMIT 300 使用批量提交,每满300条提交一次,防止内存溢出 2、WITH HEADERS 从文件中读取第一行作为参数名,...

Puzzle的博客 3万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java基础:二维数组实现杨辉三角

2019/6/17 此程序使用基本二维数组实现了杨辉三角的两种形态,主要包含了三个函数: Yanghui:将数组赋值 output: 第一种打印数组的方法 output2: 第二种打印数组的方法 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 /*此函数名为output*/ 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 /*此函数名为output...

byte_ounk的博客 865

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Java零基础学习05:java数组基础

1.1 数组的定义1.2 数组的静态初始化// 定义数组存储5个学生的年龄// 定义数组存储3个学生的姓名String[] arr3 = new String[]{"小红","小明","小李"};String[] arr4 = {"小红","小明","小李"};// 定义数组存储4个学生的身高。

qq_49421634的博客 435

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java数组详解2:多维数组

Java数组详解2:多维数组

sunyusong666的博客 182

数组的访问2

/ 数组的长度// 非空数组的最大索引 = array.length - 1。

程小白的博客 781

Java数组04:多维数组和二维数组

一、多维数组 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。 二维数组int a[][] = new int[2][2]; 解析:以上二维数组 a 可以看成一个两行两列的数组 思考:多维数组的使用public class ArrayDemo04 { public static void main(String[] args) { /* 1,2 3,4

耳东er的博客 187

java 2维数组定义_java定义二维数组的几种写法

展开全部下面给你介绍//定义二维数组写法1定义的同时分配空间大小class numfour{public static void main(String[] args){short[][] numfour=new short[5][8]; //定义一个short类型的62616964757a686964616fe58685e5aeb931333365653830数组同时为它分配5行8列的空间大小n...

weixin_39775127的博客 261

JAVA基础篇---数组

一数组的概述 1.数组的理解:数组(Array),是由多个相同类型元素的按照一定的顺序排列的集合体,共同使用同一个名称,并通过编号的方式进行对数组中的元素的调用。 2.数组的声明(int为例) 数组的定义分为静态初始化与动态初始化。 静态初始化 : int[ ] ints = new int[ ]{1,3,2,4,5,2 }; 静态初始化元素之间需要使用英文状态下“ ,”隔开。 动态初始化: int[ ] ints = new int[4]; 动态初始化是指该数组可以存放[]中间数字个数的元素。 p

weixin_49869019的博客 242

object转换成数组java_Java基础(四) Object 数组转成 String 数组

Java有个问题就是toArray()方法是Object[],所以总结了几种Object数组转成String 数组的方法:1、System.arraycopy把一个数组中某一段字节数据放到另一个数组中//src:源数组;srcPos:源数组要复制的起始位置;dest:目的数组;destPos:目的数组放置的起始位置;length:复制的长度.public static void arraycop...

weixin_36264801的博客 5423

java二维数组

java中的二维数组

m0_65313675的博客 158

Java基础一 数组

数组 数组创建: int[] a1 = new int[2]; int[] a2 = {2,3,1}; int[] a3 = new int[]{3,6,7}; Java中数组的概念是:相同类型的数据的有序集合。 Java的三种引用数据类型 – 类 – 接口 – 数组 基本数据类型的数组在被创建( type[] a = new type[10] )时,会都被初始化为0(编码上的0,比如boolean的0对应是false,char的0对应是“ ”,long对应的是0L,float对应的是0.0f)

qq_53345851的博客 140

JAVA 数组的复制

数组的复制 实现代码 import java.util.Scanner; public class Test8 { public static void main(String[] args) { int[] arr1 = new int[3]; Scanner sc = new Scanner(System.in); for(int i = 0 ; i< arr1.length ; i++){ arr1[i] = sc.

weixin_51683372的博客 434
上一篇: Java基础(1)-存在指针吗
下一篇: 算法学习笔记(3)-二分查找
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值