Java零底子入门Day4:数组与二维数组详解

打印 上一主题 下一主题

主题 1837|帖子 1837|积分 5511

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、为什么需要数组?

当步伐需要处置惩罚批量同范例数据时,利用多个变量存储会非常繁琐。比方存储70个弟子姓名时,需定义70个变量,而数组可以简化这一过程,提高代码可维护性。
示例:变量存储的毛病
  1. String name1 = "张誉";
  2. String name2 = "刘疏桐";
  3. // ... 定义70个变量
  4. String name70 = "陈侃";
复制代码

二、一维数组

1. 数组的定义与初始化



  • 静态初始化:定义时直接赋值
    1. // 完整格式
    2. String[] names = new String[]{"张三", "李四", "王五", "赵六", "孙七", "周八", "吴九"};
    3. // 简化格式
    4. int[] scores = {85, 90, 78, 92, 88};
    复制代码
  • 动态初始化:先定义长度,后赋值
    1. double[] javaScores = new double[8]; // 定义长度为8的数组
    2. javaScores[0] = 89.5; // 后续逐个赋值
    复制代码
2. 数组的访问与遍历



  • 访问元素:通过索引(从0开始)
    1. System.out.println(names[0]); // 输出:张三
    2. names[1] = "田启峰"; // 修改元素
    复制代码
  • 遍历数组
    1. for (int i = 0; i < names.length; i++) {
    2.     System.out.println(names[i]);
    3. }
    复制代码
3. 常见应用案例

案例1:随机点名
  1. String[] names = {"张三", "李四", "王五", "赵六", "孙七", "周八", "吴九"};
  2. int index = (int) (Math.random() * names.length);
  3. System.out.println(names[index] + "出来回答问题!");
复制代码
案例2:统计成绩(最高分、最低分、均匀分)
  1. double[] scores = {85, 90, 78, 92, 88};
  2. double max = scores[0], min = scores[0], sum = 0;
  3. for (double score : scores) {
  4.     if (score > max) max = score;
  5.     if (score < min) min = score;
  6.     sum += score;
  7. }
  8. double avg = sum / scores.length;
  9. System.out.println("最高分:" + max);
  10. System.out.println("最低分:" + min);
  11. System.out.println("平均分:" + avg);
复制代码

三、二维数组

1. 定义与初始化



  • 静态初始化
    1. String[][] seats = {
    2.     {"张无忌", "赵敏", "周芷若"},
    3.     {"张三丰", "宋远桥", "殷梨亭"},
    4.     {"灭绝", "陈昆", "玄冥二老", "金毛狮王"},
    5.     {"杨逍", "纪晓芙"}
    6. };
    复制代码
  • 动态初始化
    1. int[][] matrix = new int[3][5]; // 3行5列的二维数组
    复制代码
2. 访问与遍历



  • 访问元素
    1. System.out.println(seats[0][1]); // 输出:赵敏
    2. seats[2][2] = "谢逊"; // 修改元素
    复制代码
  • 遍历二维数组
    1. for (int i = 0; i < seats.length; i++) {
    2.     for (int j = 0; j < seats[i].length; j++) {
    3.         System.out.print(seats[i][j] + "\t");
    4.     }
    5.     System.out.println();
    6. }
    复制代码
3. 应用案例:斗田主洗牌

  1. // 初始化54张牌
  2. String[] colors = {"♠", "♥", "♣", "♦"};
  3. String[] numbers = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
  4. String[] poker = new String[54];
  5. int index = 0;
  6. for (String number : numbers) {
  7.     for (String color : colors) {
  8.         poker[index++] = color + number;
  9.     }
  10. }
  11. poker[52] = "小王";
  12. poker[53] = "大王";
  13. // 洗牌:随机交换元素
  14. Random rand = new Random();
  15. for (int i = 0; i < poker.length; i++) {
  16.     int swapIndex = rand.nextInt(poker.length);
  17.     String temp = poker[i];
  18.     poker[i] = poker[swapIndex];
  19.     poker[swapIndex] = temp;
  20. }
复制代码

四、总结



  • 数组是存储同范例数据的容器,可显著简化批量数据操作。
  • 一维数组通过索引访问,二维数组可表现表格或矩阵布局。
  • 实际开发中,数组常用于游戏、数据处置惩罚、算法等范畴。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

何小豆儿在此

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表