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);
}