1. 写出一维数组初始化的方式
int[] arr = new int[]{1,2,3} // 静态初始化
int[] arr = new int[3] // 动态初始化
数组一旦初始化,数组的长度就是确定的,且是不可修改的 arr.length
2. 写出二维数组初始化的方式
int[][] arr = new int[4][3] //动态初始化1
int[][] arr = new int[4][] //动态初始化2
int[][] arr = new int[][]{{1,2,3},{4,5},{6,7}};
3. 如何遍历如下二维,数组
int[] arr = new int[][]{{1,2,3},{4,5},{7,8}}
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();
4. 不同类型的一维数组元素的默认初始化值各是多少?
整型: 0 boolean: false 浮点型:0 char:0 引用类型:null
5.一维数组的内存解析
String[] strs = new String[5];
strs[2] = "Tom"
strs = new String[3];
6. 数据结构
① 数据与数据之间的逻辑关系:集合、一对一、一对多、多对多
②数据的存储结构:
线性表:顺序表(比如:数组)、链表、栈、队列
树形结构:二叉树
图形结构:有效图、无效图
7. 杨辉三角练习
package com.lxy.exer;
/*使用二维数组打印一个10行的杨辉三角
提示:
1.第1行有1个元素,第n行有n个元素
2.每一行的第一个元素和最后1个元素都是1
从第三行开始,对于非第一个和第三个的元素,即 yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j]*/
public class YangHuiTest {
public static void main(String[] args) {
// 1.声明并初始化二维数组
int[][] yanghui = new int[10][];
// 2.数组元素赋值
for(int i = 0; i < yanghui.length; i++){
yanghui[i] = new int[i + 1];
// 2.1 给首末元素赋值
yanghui[i][0] = 1;
yanghui[i][i] = 1;
// 2.2给每行的非首末元素赋值
if(i > 1){
for(int j = 1; j < yanghui[i].length - 1;j++){
yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
}
}
}
// 3.遍历二维数组
for(int i = 0; i < yanghui.length; i++){
for(int j = 0; j < yanghui[i].length; j++){
System.out.print(yanghui[i][j] + " ");
}
System.out.println();
}
}
}
8.拓展:创建一个长度为6的int型数组,要求数组的值都在1-30之间,且是随机复制。同时,元素的值各不相同。
package com.lxy.exer;
public class tuozhan {
public static void main(String[] args) {
int[] arr = new int[6];
for(int i = 0; i< arr.length; i++){
arr[i] = (int)(Math.random() * 30) + 1;
for(int j = 0 ; j < i; j++){
if(arr[i] == arr[j]){
i--;
break;
}
}
System.out.println(arr[i]);
}
}
}
9.回形数
package com.lxy.exer;
import java.util.Scanner;
public class RectangleTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个数字:");
int len = scanner.nextInt();
int[][] arr = new int[len][len];
int s = len * len;
int k = 1; // 向右·
int i = 0, j = 0;
for(int m = 1;m <= s;m++){
if(k == 1){
if(j < len && arr[i][j] == 0){
arr[i][j++] = m;
}else{
k = 2;
i++;
j--;
m--;
}
}else if(k == 2){
if(i < len && arr[i][j] == 0){
arr[i++][j] = m;
}else{
k = 3;
i--;
j--;
m--;
}
}else if(k == 3){
if(j >= 0 && arr[i][j] == 0){
arr[i][j--] = m;
}else{
k = 4;
i--;
j++;
m--;
}
}else if(k == 4){
if(i >= 0 && arr[i][j] == 0){
arr[i--][j] = m;
}else{
k = 1;
i++;
j++;
m--;
}
}
}
// 遍历
for(int m = 0;m < arr.length; m++){
for(int n = 0;n < arr[m].length; n++){
System.out.print(arr[m][n] + "\t");
}
System.out.println();
}
}
}