Java中数组的介绍与实战

发布时间:2026/7/22 19:49:31

Java中数组的介绍与实战
目录1.初识数组2.数组的简单应用1】求和2】取最小值、最大值3】求平均值3.数组的进阶实战注册登录1.0模拟计算器1.初识数组数组是最基础、最底层的线性数据结构其可以存储多个同类型的数据、变量。数据结构是数据的存储、组织、管理方式格式1静态初始化数据类型[] 数组名 new 数据类型[长度];如User[] users new User[5];2动态初始化数据类型[] 数组名 {元素1, 元素2, 元素3, 元素4, 元素5};如String[] strs {张三, 李四, 王五};长度数组名.length创建好之后长度不能变。下标数组中第一个元素的下标为0后面的依次递增1最大下标是数组名.length-1。下标不能超过0—数组名.length-1的范围。访问元素使用数组名[下标]语法访问数组元素。例如int[] arr new int[5]; arr[0] 1; arr[1] 2; int n arr[1];2.数组的简单应用1】求和public class array { static void main() { //求和 int sum 0; int[] arr1 {1, 2, 3, 4, 5}; for (int i 0; i arr1.length; i) { int n arr1[i]; sum n; } System.out.println(sum); } }2】取最小值、最大值public class array { static void main() { //找最小值 int[] arr2 {1,5,3,6,-3,5,9}; int min arr2[0]; for (int i 0;i arr2.length; i) { if(arr2[i]min){ min arr2[i]; } } System.out.println(min); //找最大值 int[] arr3 {2,32,5,6,5,7,66}; int max arr3[0]; for (int i 0;i arr3.length;i) { int n arr3[i]; if(maxn){ max n; } } System.out.println(max); } }3】求平均值public class array { static void main() { //求平均值 int[] arr4 {2,3,6,4,7,5,55}; int sum2 0; int a arr4.length; for(int i 0;iarr4.length;i){ int n arr4[i]; sum2 n; } double p sum2/a; System.out.println(p); } }3.数组的进阶实战注册登录1.0定义一个用户类 在监听器中使用User类作为类型定义一个数组在点击登录、注册时利用数组完成功能·LoginUI4类import javax.swing.*; import java.awt.*; public class LoginUI4 { public void showUI(){ //1.创立一个窗体对象 JFrame JFrame jf new JFrame(); //2..设置窗体的属性: 标题、大小、位置、关闭方式(DefaultCloseOperation)、可见性(Visible)、布局(FlowLayout 流式布局) jf.setTitle(登录界面 V1.0 作者xzn070311 ); jf.setSize(400,300); jf.setLocation(500,100); jf.setDefaultCloseOperation(3); FlowLayout flo new FlowLayout(); jf.setLayout(flo); //3.创立标签对象、按钮对象、文本框对象、文本输入框对象、密码输入框对象 JLabel JButton JTextField JPasswordField JLabel qq new JLabel(QQ); JLabel namelb new JLabel(账号); JLabel pwdlb new JLabel(密码); JButton bt1 new JButton(登录); JButton bt2 new JButton(注册); //创建一个监听器类对象与按钮绑定 LoginListen4 ll4 new LoginListen4(); bt1.addActionListener(ll4); bt2.addActionListener(ll4); JTextField tf new JTextField(35); JPasswordField pf new JPasswordField(35); ll4.jtf tf;//将tf存储的输入框对象引用地址拷贝一份给监听器对象中的jtf,那么监听器对象中的jtf也可以调用输入框的方法 ll4.jpf pf; //4.将3中的对象添加到窗体对象中 jf.add(qq); jf.add(namelb); jf.add(tf); jf.add(pwdlb); jf.add(pf); jf.add(bt1); jf.add(bt2); jf.setVisible(true); } static void main() { LoginUI4 lui new LoginUI4(); lui.showUI(); } }·LoginListen4类import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class LoginListen4 implements ActionListener { JTextField jtf; JPasswordField jpf; int size; //存储用户的数组 User[] users new User[10]; // 构造方法初始化内置默认账号 public LoginListen4() { User user1 new User(); user1.name xzn070311; user1.pswd 123456; users[0] user1; size 1; // 初始已有1位用户 } Override public void actionPerformed (ActionEvent e){ // 获取输入并去除首尾空格 String text jtf.getText().trim(); String pswd jpf.getText().trim(); String btAc e.getActionCommand();//获取各个按钮的指令默认指令为文本值 System.out.println(按钮指令 btAc);//写给自己看的操作结果 // 统一判空账号或密码为空直接终止 if (text.isEmpty() || pswd.isEmpty()) { System.out.println(账号与密码不能为空); return; } if (btAc.equals(注册)) { boolean a true; for (int i 0; i size; i) { if (users[i].name.equals(text)) { a false; break; } } if (a true) { User user new User(); user.name text; user.pswd pswd; users[size] user; size; System.out.println(您是本站第 size 位用户); } else { System.out.println(您输入的账号已被注册); } } else if (btAc.equals(登录)) { int count 0; for (int i 0; i size; i) { if (text.equals(users[i].name)) { if (pswd.equals(users[i].pswd)) { System.out.println(登录成功欢迎来到本站); } else { System.out.println(密码不正确); } count; break; } } if (count 0) { System.out.println(用户不存在请先注册~); } } } }·User类public class User { String name; String pswd; }运行结果模拟计算器1 支持所有的运算符 - * / %运算2 支持小数运算3 支持 归0、退格 操作·CalculatorUI类package xzn0718; import javax.swing.*; import java.awt.*; public class CalculatorUI { public static void main(String[]args){ CalculatorUI clui new CalculatorUI(); clui.showUI(); } public void showUI(){ JFrame jf new JFrame(); jf.setTitle(计算器); jf.setSize(400,380); jf.setDefaultCloseOperation(3); FlowLayout fl new FlowLayout(); jf.setLayout(fl); jf.setLocationRelativeTo(null);//居中显示 Dimension jtfdms new Dimension(370,50);//设置尺寸 JTextField jtf new JTextField(); CalculatorListener cl new CalculatorListener(); cl.jtf jtf;//将jtf存储的输入框对象引用地址拷贝一份给监听器对象中的jtf,那么监听器对象中的jtf也可以调用输入框的方法 jtf.setPreferredSize(jtfdms);//建议尺寸 Font font new Font(微软雅黑, Font.PLAIN, 20);//设置字体 jtf.setFont(font); jf.add(jtf); String[] jbtext { %, x², —, ÷, 7, 8, 9, *, 4, 5, 6, -, 1, 2, 3, , 0, ., C, , }; for(int i0;ijbtext.length;i){ JButton jb new JButton(); jb.addActionListener(cl); jb.setText(jbtext[i]); Dimension jbdms new Dimension(88,50); Font font1 new Font(微软雅黑, Font.PLAIN, 20); jb.setFont(font1); jb.setPreferredSize(jbdms); Color jbCr new Color(222, 243, 9); jb.setBackground(jbCr); jf.add(jb); } jf.setResizable(false);//不可调整窗口尺寸 jf.setVisible(true); } }·CalculatorListener类package xzn0718; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class CalculatorListener implements ActionListener { JTextField jtf; String oldStr; // 保存计算过程中的数据 double oldNum;// 特定操作前的数字 String op ;// 运算符 Override public void actionPerformed(ActionEvent e) { //获取按钮的文本 String btText e.getActionCommand(); //判断文本的类型 String btType checkBtType(btText); if(btType.equals(运算符)){ oldStr jtf.getText();//获取运算符之前的数字 oldNum Double.parseDouble(oldStr);//将字符串类型转化成整数类型 jtf.setText();//清空输入框 op btText;//保存运算符 }else if(btType.equals(数字)){ oldStr jtf.getText();//获取输入的数字 jtf.setText(oldStr btText);//拼接之前与当前的数字 }else if(btType.equals(等于)){ String newStr jtf.getText();//获取运算符后等于号前的数字 double newdb Double.parseDouble(newStr); double result; //讨论不同的运算符的运算结果 if(op.equals()){ result oldNum newdb; }else if(op.equals(-)){ result oldNum - newdb; }else if(op.equals(*)){ result oldNum * newdb; }else if(op.equals(÷)){ result oldNum / newdb; }else{ result oldNum % newdb; } jtf.setText(result); }else if(btType.equals(小数点)){ oldStr jtf.getText();//获取小数点前的数字 if(!oldStr.contains(.)) { //防止小数点重复拼接 jtf.setText(oldStr .);//拼接数字与小数点 } }else if(btType.equals(退格)){ oldStr jtf.getText();//获取操作前的数据 if(!oldStr.isEmpty()) {//防止无数据时点击按钮报错 String newStr oldStr.substring(0, oldStr.length() - 1); jtf.setText(newStr);//删掉最后一个数据 } }else if(btType.equals(清空)){ jtf.setText();//清空输入框 }else{ oldStr jtf.getText();//获取操作前的数字 oldNum Double.parseDouble(oldStr); //将数字乘以二次方 double result; result oldNum*oldNum; jtf.setText(result); } } //判断文本类型的方法 public String checkBtType(String BtText){ if(BtText.equals()||BtText.equals(-)||BtText.equals(*)||BtText.equals(÷)||BtText.equals(%)){ return 运算符; }else if(BtText.equals()){ return 等于; }else if(BtText.equals(—)){ return 退格; }else if(BtText.equals(C)){ return 清空; }else if(BtText.equals(.)){ return 小数点; }else if(BtText.equals(x²)){ return 平方; }else{ return 数字; } } }运行结果

相关新闻

深入解析EDMA3:事件队列、传输优化与实时系统调试实战

深入解析EDMA3:事件队列、传输优化与实时系统调试实战

2026/7/22 19:49:31

1. 项目概述与EDMA3核心价值在嵌入式系统开发,尤其是对实时性要求苛刻的领域,如音视频处理、通信基带或高速数据采集,CPU的时间是极其宝贵的资源。如果让CPU亲自去搬运每一字节的数据,就好比让一位总工程师去流水线上亲自拧螺丝&a…

深入解析TI EDMA3核心寄存器:队列管理、内存保护与事件控制

深入解析TI EDMA3核心寄存器:队列管理、内存保护与事件控制

2026/7/22 19:49:31

1. 项目概述与核心价值在嵌入式系统开发,尤其是基于德州仪器(TI)多核DSP或SoC(如C6000系列)的项目中,高效的数据搬运是决定系统整体性能的命脉。CPU如果深陷于大量、重复的原始数据拷贝任务,其宝…

DecompilerMC:Minecraft官方映射反编译工具终极指南

DecompilerMC:Minecraft官方映射反编译工具终极指南

2026/7/22 19:49:31

DecompilerMC:Minecraft官方映射反编译工具终极指南 【免费下载链接】DecompilerMC This repository allows you to decompile any minecraft version that was published after 19w36a without any 3rd party mappings, you just need to execute the script or th…

如何在iOS项目中集成RSBarcodes_Swift?3分钟快速上手教程

如何在iOS项目中集成RSBarcodes_Swift?3分钟快速上手教程

2026/7/22 20:49:33

如何在iOS项目中集成RSBarcodes_Swift?3分钟快速上手教程 【免费下载链接】RSBarcodes_Swift 1D and 2D barcodes reader and generators for iOS 8 with delightful controls. Now Swift. 项目地址: https://gitcode.com/gh_mirrors/rs/RSBarcodes_Swift RS…

Fody与MSBuild集成指南:让IL编织无缝融入你的开发流程

Fody与MSBuild集成指南:让IL编织无缝融入你的开发流程

2026/7/22 20:49:33

Fody与MSBuild集成指南:让IL编织无缝融入你的开发流程 【免费下载链接】Home The landing page for Fody repositories 项目地址: https://gitcode.com/gh_mirrors/home1/Home Fody是一个强大的IL编织工具,它能在编译过程中修改程序集&#xff0c…

2026吐鲁番黄金回收白银回收铂金回收市民首选无隐形扣费正规备案回收门店联系方式推荐

2026吐鲁番黄金回收白银回收铂金回收市民首选无隐形扣费正规备案回收门店联系方式推荐

2026/7/22 20:49:33

2026吐鲁番黄金白银铂金回收实测榜单|公安工商双备案无损测金无折旧费门店 吐鲁番黄金回收哪家靠谱?工商公安双备案中检认证实体门店 实地走访吐鲁番贵金属回收市场 吐鲁番本地贵金属回收店铺遍地丛生,行业套路层出不穷,不少市民变…

为什么你的AI美食图被平台降权?曝光算法新规下必须调整的4项元数据与EXIF埋点策略

为什么你的AI美食图被平台降权?曝光算法新规下必须调整的4项元数据与EXIF埋点策略

2026/7/22 20:49:33

更多请点击: https://kaifayun.com 第一章:AI美食图被平台降权的核心归因解析 平台算法对AI生成内容的识别能力持续增强,而美食类图像因其高频、强视觉特征和商业敏感性,成为内容质量审核的重点领域。当AI生成的美食图被系统判定…

uni-app 组件 uni-search-bar 常见问题

uni-app 组件 uni-search-bar 常见问题

2026/7/22 20:49:33

1. 常见 Bug 及解决方案1.1 Bug:输入框无法获取焦点/点击无效现象: 点击搜索框无反应,无法弹出键盘进行输入。可能原因与解决方案:组件被遮挡: 检查是否有其他元素(如绝对定位的遮罩层、浮层)覆…

Algebra模块深度探索:MathGenerator如何生成多样化代数题目?

Algebra模块深度探索:MathGenerator如何生成多样化代数题目?

2026/7/22 20:39:33

Algebra模块深度探索:MathGenerator如何生成多样化代数题目? 【免费下载链接】mathgenerator A math problem generator, created for the purpose of giving self-studying students and teaching organizations the means to easily get access to hig…

微服务进阶:服务网格与Istio

微服务进阶:服务网格与Istio

2026/7/21 5:45:57

541|微服务进阶:服务网格与Istio 上篇文章我们聊了微服务的基本概念和拆分方法。 但微服务多了,问题也多了: 服务之间怎么通信? 怎么监控每个服务的调用链路? 熔断、限流、重试怎么做? 安全认证怎么统一? 以前这些都靠SDK库(比如Hystrix、Feign),每个服务都要集成…

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

2026/7/21 9:56:14

一、零售门店全域协同业务背景与行业痛点 1.1 门店超级终端设备矩阵(连锁便利店/商超标准配置) 自助收银Kiosk一体机:顾客结算、自助核销优惠券、商品素材预览;运营折叠平板:店长后台商品上新、图片录入、活动配置、…

噗叽短视频界面分析

噗叽短视频界面分析

2026/7/21 3:09:32

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…

设计EDA 首席专家 12 维度 JD(HR 仅高管 / HRD 使用)

设计EDA 首席专家 12 维度 JD(HR 仅高管 / HRD 使用)

2026/7/22 0:08:09

定位:公司 EDA 技术最高负责人、技术天花板、战略级专家、流片总兜底人 属于P9/Fellow/ 首席科学家级,不做日常执行,管方向、管架构、管风险、管突破。1. 对标层级内部职级:P9 / 首席专家 / Fellow 外部对标:华为 20–…

费用率无法实时监控怎么办?费用率联动预算管理怎么实现?

费用率无法实时监控怎么办?费用率联动预算管理怎么实现?

2026/7/22 0:08:09

很多企业费用管控存在严重滞后性:日常差旅、招待、营销、人力费用持续发生,但费用率只能等到月末结账、营收数据出来后才能计算核对,月度中途费用超标、营收不达标导致的费用率失衡完全无法感知。等到月末发现整体费用率远超预算目标时&#…

设计EDA 研发总监 12 维度 JD(HR 内部仅高管层使用)

设计EDA 研发总监 12 维度 JD(HR 内部仅高管层使用)

2026/7/22 0:08:09

定位:公司 EDA / 设计平台最高管理岗,技术 管理 经营三重决策,对整体流片、效率、质量、成本、团队负最终责任1. 对标层级内部职级:M3 / P8 / 总监级 外部对标:华为 20 级、互联网 M2 / 总监、头部芯片 / EDA 公司研…