Java中数组的介绍与实战

发布时间:2026/7/22 19:49:25
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 数字; } } }运行结果