二维数组画图W和M 简单认识下泛型:任意类型数据集合反转
将泛型定义在类上 作用在方法上 实例后可使用任意指定的引用类型数组作为调用参数
import org.junit.Test;
import java.util.Arrays;
@SuppressWarnings("all")
public class Generic<T> {//在类上定义声明泛型 作用全局非静态成员
public <T, E, K> void show1(T o, E e, K d) {//声明<T,E, K> 自定义泛型
System.out.println(o.toString()+e+d);
}
@Test
public void test() {
show1("我", "爱", "你");
Integer[] list={2,13,14,1,43};
Generic<Integer> generic=new Generic<>();
generic.swap(list);
}
public static <T> void swap(T[] arr) {//任意类型数组 ,Stirng Integer....等
int start = 0;
int end = arr.length - 1;
while (true) {
if (start >= end) break;
T temp = arr[start];//位运算泛型就不可以指定了
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
System.out.println(Arrays.toString(arr));
}
}
二维数组和数组概念差不多 不过是一起作用自平面的俩个方向 x代表数组行 y代表数组列
画出W 与 M
@Test public void printM() { int[][] arr = new int[3][9];//%3适合轮播图路径 用在这里不太行 三行九列 int x = 2; int y = 0; boolean flag = true; for (int i = 1; i <= 9; i++) { arr[x][y] = i; y++; if (flag) { x--; } if (!flag) { x++; } if (x < 0) { flag = false; x += 2; } if (x > 2) { flag = true; x -= 2; } } for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[0].length; j++) { if (arr[i][j] == 0) System.out.print(" "); else { System.out.print(arr[i][j]); } } System.out.println(); } System.out.println(); int[][] arr1 = new int[3][9]; int x1 = 0; int y1 = 0; boolean flag1 = true; for (int i = 1; i <= 9; i++) { arr1[x1][y1] = i;//赋值九次 123456789 if (flag1) x1++; if (!flag1) x1--; if (x1 == 3) { x1 -= 2; flag1 = false;//从3回退到1 需要退俩格 改变状态让其走另一个分支!!for (true false) } if (x1 == -1) { x1 += 2; flag1 = true; } y1++; } for (int i = 0; i < arr1.length; i++) { for (int j = 0; j < arr1[0].length; j++) { if (arr1[i][j] == 0) System.out.print(" "); else { System.out.print(arr1[i][j]); } } System.out.println();// } }