Erlo

day04-数组

2025-01-27 20:29:24 发布   21 浏览  
页面报错/反馈
收藏 点赞

Java数组

—————————————————————————————————————————————————————————

1.数组

  • 数组:存储批量数据。除此之外还有,二维数组,对象,集合……

  • 数组使用的原因:
    用变量存储批量数据,代码会非常臃肿;
    对于类型相同的大批量数据,使用数组存储,明显优于用多个变量进行存储。

  • 静态初始化:

// 1>. 定义一个数组,用来存储5个学生的姓名
// 静态初始化一个数组:定义数组的时候,数据已经确定好了
String names [] = new String[] {"张三","李四","王五","赵六","孙七"};
  • 数组是一个数据容器,用来存储一批同类型的数据。
    数组的访问,为数组某个位置赋值,获取数组的长度(元素个数)

  • 数组的动态初始化:

// 1). 需要一个数组来存储8名同学的成绩
// 动态初始化数组,只确定数组的类型和存储数据的容量
// 数据类型 [] 数组名 = new 数据类型 [数组容量];
double [] scores = new double [8];
//        scores = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0];
//                   0    1    2    3    4    5    6    7

Scanner sc = new Scanner(System.in);

// 2). 录入8个同学的java成绩,并把成绩存入数组中
for (int i = 0; i 
  • 一维数组的随机访问:
// 2>. 随机获取一个索引值
// Math.random()  :   [0 - 1)
// names.length : 是数组长度,即元素个数 15
// Math.random() * names.length : [0 - 15)   =====>    [0, 14]
int index = (int)(Math.random() * names.length);

// 3>. 打印数组中的元素
System.out.println("总共有" + names.length +"个学生,随机抽一个同学是:" + names[index]);
System.out.println(names);

2.二维数组

  • 二维数组运用:桌面类型游戏的开发——塔牌游戏。

  • 静态初始化:

// 数据类型 [] [] 数组名  = new 数据类型 [] [] { { },{ },{ }...}
//                    其中 new 数据类型 [] [] 可以省略
String [][] classmates = {
                {"张无忌", "赵敏","周芷若"},
                {"张三丰", "宋远桥", "殷梨亭"},
                {"灭绝师太", "陈坤","玄冥二老","金毛狮王"},
                {"杨逍", "纪晓芙"}
};
  • 动态初始化:
// 数据类型 [ ] [ ] 数组名  = new 数据类型 [长度1] [长度2]
// 动态初始化数组
int [][] arr = new int [3][5];
  • 随机的思路:(假设数组中有n个数据)
    思路一:遍历数组,每次从数组中随机一个位置,然后将当前位置的数和随机位置交换;
    思路二:遍历n次,每次随机两个位置出来,将两个位置的数交换。
// 思路一:
for (int i = 0; i  0 ~ 53
    // 每次随机一个位置,将两个位置的数交换
    String temp = poker[i];
    poker[i] = poker[index];
    poker[index] = temp;
}

// 思路二:
for (int i = 0; i  0 ~ 53
    int index2 = (int)(Math.random() * 54);  // =====> 0 ~ 53
    // 每次随机两个位置,将两个位置的数交换
    String temp = poker[index1];
    poker[index1] = poker[index2];
    poker[index2] = temp;
}

3.其他

  • 动态初始化数组元素默认值
    基本类型:
    byte、short、char、int、long =====> 0
    float、double =====> 0.0
    boolean =====> false
    引用类型:
    类、接口、数组、String =====>null

  • 求最值代码的优化:
    找数组比较浪费性能,所以多用变量进行代码运算,少用数组参与运算

// 遍历数组,统计总分,统计最高分,统计最低分,算平均成绩
// 找最值代码的优化:找数组比较浪费性能
public static void FindMaxAndMin(double scores []) {
    double grade = scores[0];   // 优化一
    double allScore = grade ;
    double max = grade ;
    double min = grade ;
    // 从数组的第二个位置开始遍历
    for (int i = 1; i  max) {
            max = score;
        }
        if (score 

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认