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 数字; } } }运行结果

相关新闻

分享一套锋哥原创的基于PyTorch的动物图像识别系统(深度学习+PyQt6+ResNet18+ImageNet+迁移学习)

分享一套锋哥原创的基于PyTorch的动物图像识别系统(深度学习+PyQt6+ResNet18+ImageNet+迁移学习)

大家好,我是Java1234_小锋老师,分享一套锋哥原创的基于PyTorch的动物图像识别系统(深度学习PyQt6ResNet18ImageNet迁移学习) 项目介绍 随着深度学习技术的快速发展,计算机视觉在目标分类、目标检测和图像理解等领域取得了显著进展。动物图像…

2026/7/27 0:15:47 阅读更多 →
嵌入式EMIF接口实战:SDRAM与异步存储器配置与调试全解析

嵌入式EMIF接口实战:SDRAM与异步存储器配置与调试全解析

1. 项目概述在嵌入式系统开发中,处理器与外部存储器的“对话”效率,直接决定了整个系统的性能上限。无论是需要高速数据吞吐的SDRAM,还是用于存储启动代码的NOR Flash,它们与CPU之间的桥梁——外部存储器接口(EMIF&…

2026/7/26 17:02:19 阅读更多 →
如何使用Revo实现领域驱动设计(DDD):从理论到实践的终极教程

如何使用Revo实现领域驱动设计(DDD):从理论到实践的终极教程

如何使用Revo实现领域驱动设计(DDD):从理论到实践的终极教程 【免费下载链接】Revo Event Sourcing, CQRS and DDD framework for C#/.NET Core. 项目地址: https://gitcode.com/gh_mirrors/revo/Revo Revo是一个专为C#/.NET Core构建的开源框架,…

2026/7/26 2:42:38 阅读更多 →

最新新闻

TI NDK原始以太网套接字与无拷贝API:嵌入式高性能网络编程实战

TI NDK原始以太网套接字与无拷贝API:嵌入式高性能网络编程实战

1. 项目概述:为什么我们需要原始以太网套接字?在网络编程的世界里,我们通常打交道的是像 TCP 或 UDP 这样的传输层套接字。你调用socket(AF_INET, SOCK_STREAM, 0),然后connect、send、recv,操作系统内核的协议栈会帮你…

2026/7/27 9:14:16 阅读更多 →
微信小程序二进制包逆向工程深度解析:wxappUnpacker技术实现原理

微信小程序二进制包逆向工程深度解析:wxappUnpacker技术实现原理

微信小程序二进制包逆向工程深度解析:wxappUnpacker技术实现原理 【免费下载链接】wxappUnpacker forked from https://github.com/qwerty472123/wxappUnpacker 项目地址: https://gitcode.com/gh_mirrors/wxappu/wxappUnpacker 微信小程序.wxapkg二进制包逆…

2026/7/27 9:14:16 阅读更多 →
深入解析TMS320VC5416接口时序:从概念到硬件设计与驱动开发实战

深入解析TMS320VC5416接口时序:从概念到硬件设计与驱动开发实战

1. 项目概述:为什么我们需要深挖TMS320VC5416的接口时序? 搞了十几年嵌入式硬件和DSP驱动开发,我越来越觉得,能把芯片数据手册里那些冷冰冰的时序图和数据表格真正“吃透”的工程师,才是能搞定复杂系统稳定性的高手。很…

2026/7/27 9:14:16 阅读更多 →
腾讯混元团队转向世界模型:技术路线、硬件需求与开发实践

腾讯混元团队转向世界模型:技术路线、硬件需求与开发实践

这次我们来看一个值得关注的技术动态:腾讯混元多模态理解团队负责人胡瀚离职创业,原团队将聚焦世界模型方向。对于关注AI大模型发展的技术人来说,这不仅是人事变动,更反映了行业技术路线的变化趋势。 混元作为腾讯的核心大模型&a…

2026/7/27 9:14:16 阅读更多 →
嵌入式接口时序设计:从建立保持时间到PCB布局的实战指南

嵌入式接口时序设计:从建立保持时间到PCB布局的实战指南

1. 项目概述:为什么接口时序是嵌入式设计的“生命线” 在嵌入式系统与数字信号处理器(DSP)的设计中,接口时序规范绝不是数据手册里那些冰冷数字的简单罗列,而是决定整个系统能否稳定运行的“生命线”。我接触过不少项目…

2026/7/27 9:14:15 阅读更多 →
OpenClaw开源AI框架:低代码开发与硬件需求解析

OpenClaw开源AI框架:低代码开发与硬件需求解析

1. 当AI开始“养虾”:OpenClaw的定位与争议最近在开发者圈子里,一个叫OpenClaw的开源项目突然火了。这个项目的名字很有意思——直译过来就是“开放式虾钳”,官方介绍它是一个“面向普通开发者的AI Agent开发框架”。但当我看到GitHub上那些复…

2026/7/27 9:13:15 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻