java二维数组及遍历

1、二维数组

        概述:二维数组:是以一维数组作为数组元素的数组,即 “数组的数组”。

                  三维数组:是以二维数组作为数组元素的数组。

        通常,主要使用的是二维数组,三维及以上使用较少。

二维数组语法:

方法1:数据类型[][] 数组名 = new 数据类型[外维数组容量][内维数组容量];

例:

int[][] arr = new int[2][3];

//赋值:
//第1个内维数组
arr [0][0] = 90; 
arr [0][1] = 80;
arr [0][2] = 70;
// 第2个内维数组
arr [1][0] = 90;
arr [1][1] = 90;
arr [1][2] = 80;

方法2:数据类型[][] 数组名 = {{},{}...};

例:

int[][] arr = {{90, 60, 20}, {40, 15, 80}};

方法3:数据类型[][] 数组名 = new 数据类型[][]{{},{}...};

例:

int[][] arr = new int[][]{90, 80, 70, 60, 50}, {90, 90, 80, 70, 65}, {85, 70, 75, 80, 60}};

2、遍历及动态赋值

2.1遍历

方法1:使用for循环

例1:

String[][] arr = {{"我", "爱", "你"}, {"中", "国"}, {"亲", "爱", "的", "母", "亲"}};
for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr[i].length; j++) {
        System.out.print(arr[i][j]); 
    }
    System.out.println();
}

例2:

int[][] arr = {{50, 20, 30}, {80, 90, 60}, {10, 80, 70, 30, 60}};
for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr[i].length; j++) {
        System.out.print(arr[i][j] + "\t"); 
    }
    System.out.println();
}

方法2:Arrays工具类

例:

int[][] arr = {{50, 20, 30}, {80, 90, 60}, {10, 80, 70, 30, 60}};
for (int[] a : arr) {
    System.out.println(Arrays.toString(a));
}

2.2动态赋值

例1:

//班级名称前缀
String[] coursePrefix = {"java", "Python", "go"};
//班级数组
String[][] classes = new String[coursePrefix.length][20];
//赋值
for (int i = 0; i < classes.length; i++) {
    for (int j = 0; j < classes[i].length; j++) {
        if (j < 9) {
            classes[i][j] = coursePrefix[i] + "0" + (j + 1);
        } else {
            classes[i][j] = coursePrefix[i] + (j + 1);
        }
    }
}
//遍历
for (String[] str : classes) {
    System.out.println(Arrays.toString(str));
}

例2:通过随机数生成幸运中奖用户

String[] str = new String[15];
//存储用户名
for (int i = 0; i < str.length; i++) {
    if (i < 9) {
        str[i] = "user" + "0"+ (i + 1);
    } else {
        str[i] = "user" + (i + 1);
    }
}
System.out.println(Arrays.toString(str));
//随机数
Random random = new Random();
int index = random.nextInt(str.length);
System.out.println("幸运号>>>" + index);
System.out.println("中奖人名字是>>>" + str[index]);

例3:需求:随机生成100个姓名

// 姓氏
String[] surnames = new String[] {"东方","左丘", "欧阳", "皇甫", "上官", "闾丘", "令狐",
"夏侯", "诸葛", "尉迟", "皇甫", "宇文", "鲜于", "西门", "司马", "独孤", "公孙", "慕容",
 "轩辕",};
// 名字
String[] names = new String[] {"何", "高", "梁", "郑", "罗", "宋", "谢", "唐", "韩",
 "曹", "许", "邓", "萧", "冯", "曾", "程", "蔡", "彭", "潘", "袁", "於", "董", "余", 
"苏", "叶", "吕", "魏", "蒋", "田", "杜", "丁", "沈", "姜", "范", "江", "傅", "钟", 
"卢", "汪", "戴", "崔", "任","陆", "廖", "姚", "方", "金", "邱", "夏", "谭", "韦", 
"贾", "邹", "石", "熊", "孟", "秦", "阎", "薛", "侯", "雷", "白", "龙", "段", "郝",
 "孔", "邵", "史", "毛", "常","万", "顾", "赖", "武", "康", "贺", "严", "尹", "钱",
 "施", "牛", "洪", "龚", "李", "刘", "陈", "杨", "黄", "赵", "周", "吴", "徐", "孙",
 "朱", "马", "胡", "郭", "林"};

Random random = new Random();
for (int i = 0; i < 100; i++) {
    // 随机姓氏
    String surname = surnames[random.nextInt(surnames.length)];
    // 随机名字
    int count = random.nextInt(1, 3);
    String name = "";
    for (int j = 0; j < count; j++) {
        name += names[random.nextInt(names.length)];
    }
    // 拼接姓名
    String generateName = surname + name;
    System.out.println("我的姓名 >>> " + generateName);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值