java 数组 画图_Java数组

f51c2a18520bb8052be8195b4c1a3d85.png

27878ff38c386f3999b95d84901bbcec.png

例子:一个足球队有很多人,认识某个人的时候先是把他看作某某队的队员,然后再利用他们身上的编号去区分队员

af31a0c4268fed0f46ba2f00201cd856.png

Java中是建议在类型后面加[]代表是数组

int num[]:是C/C++语言风格的

aa6da0a4add3f3cdaec536b8cf23e0db.png

8231902f358302006c862d7a18036444.png

画图工具:ProcessOn

568c625de943e5d119ba4a235fe244bb.png

3ad605f9f17d8f7e0c6e205c65bbbffb.png

fd00db66cfd1f923ae977f6f2d9d8379.png

525a3c50ec0650d9e376f72f61ebad3c.png

数组就是一个对象,因为它是new出来的

9ad04c9ca39240c63441eb2f73d7e645.png

public class Demo3 {

public static void main(String[] args) {

int[] arrays = {1,2,3,4,5};

//arrays.for 增强型for循环 JDK1.5以上支持 没有下标 适合打印输出

//arrays代表一个数组,array代表数组中的每一个元素

for (int array : arrays) {

System.out.println(array);

}

}

}

public class Demo3 {

public static void main(String[] args) {

int[] array = {1,2,3,4,5};

int[] a = reverse(array);

for (int i = 0; i

System.out.println(a[i]);

}

}

//反转数组

public static int[] reverse(int[] arrays){

int[] result = new int[arrays.length];

//反转

for (int i = 0, j = result.length-1; i

result[j]= arrays[i];

}

return result; //Java中方法的返回值可以是数组

}

}

Java中方法的返回值可以是数组

5776f8a495119c12abcb6ba3189e76b0.png

a9bd38f37ad3128fde9c1153edb95a34.png

4f1b69c02c3cb42fce99ed5a89174ddc.png

2fe55530ce9522c462defd4ceaa78177.png

三维数组:

int array[3][2][2] = {0,1,2,3,4,5,6,7};//相当于3个2 * 2 的二维数组

printf("%d %d %d %d\n",&array[0],&array[0][0],&array[0][0][0],&array);

//如果说把三维数组比作一个立方体的话,那么这个立方体底边是个2*2的正方形,高为3

//注意:三维数组的高维度是写在最前面的,也就是立方体的z

f38f67b7883e3f087f66a917ecce8736.png

要研究一个类,如Arrays,在IDEA所写代码中打出Arrays,查看源码,左侧点击Structure,可以看到类中所有方法

public class Demo4 {

public static void main(String[] args) {

int[] a={5,9,3,7,6};

System.out.println(a); //[I@1b6d3586

//打印数组元素Arrays.toString

System.out.println(Arrays.toString(a)); //[5, 9, 3, 7, 6]

//对数组进行排序:升序

Arrays.sort(a);

System.out.println(Arrays.toString(a)); //[3, 5, 6, 7, 9]

//填充

Arrays.fill(a,2,4,0);

System.out.println(Arrays.toString(a)); //[3, 5, 0, 0, 9]

Arrays.fill(a,0);

System.out.println(Arrays.toString(a)); //[0, 0, 0, 0, 0]

}

}

f611b9c6f3d381278171349ae329bdb1.png

//冒泡排序

// 1.比较数组中2个相邻的元素,若满足比较条件,则交换它们的位置

// 2.每一次比较都会产生出一个最大或最小的数字

// 3.则下一轮可以少一次排序

// 4.依次循环,直到结束

public class Demo5 {

public static void main(String[] args) {

int[] a = {5,9,3,1,7,6,2,4,2};

int[] sort = sort(a);

System.out.println(Arrays.toString(a));

}

public static int[] sort(int[] array){

int temp = 0;

//外层循环判断要经过几轮,一般为length-1 比较的轮数

for (int i = 0; i

//比较2个数 数与数之间需要比较的次数

for (int j = 0; j

if (array[j+1]>array[j]){

temp = array[j];

array[j] = array[j+1];

array[j+1] = temp;

}

}

}

return array;

}

}

bcc8a9dd259f33b1de4033b85a263c10.png

a0f3512a24653b391348bb50383a4c11.png

public class Demo6 {

public static void main(String[] args) {

//1.创建一个二维数组11*11 0:没有棋子 1:黑棋 2:白棋

int[][] array1 = new int[11][11];

array1[1][2] = 1;

array1[2][3] = 2;

//输出原始的数组 array1.for

for (int[] ints : array1) {

for (int anInt : ints) {

System.out.print(anInt+"\t");

}

System.out.println();

}

System.out.println("=================");

//转换为稀疏数组保存

//获取有效值的个数

int sum =0;

for (int i = 0; i <11; i++) {

for (int j = 0; j <11; j++) {

if (array1[i][j]!=0) {

sum++;

}

}

}

System.out.println("有效值个数为:"+sum);

//2.创建一个稀疏数组的数组 有效值个数+1为行数,列固定为3列

int[][] array2 = new int[sum+1][3];

array2[0][0] = 11;

array2[0][1] = 11;

array2[0][2] = sum;

//遍历二维数组,将非零值存放到稀疏数组中

int count = 0;

for (int i = 0; i

for (int j = 0; j

if(array1[i][j]!=0){

count++;

array2[count][0] = i;

array2[count][1] = j;

array2[count][2] = array1[i][j];

}

}

}

//输出稀疏数组

System.out.println("稀疏数组:");

for (int i = 0; i

System.out.println(array2[i][0]+"\t"+array2[i][1]+"\t"+array2[i][2]+"\t");

}

System.out.println("=========================");

//还原成原数组

System.out.println("还原:");

//1.读取稀疏数组

int[][] array3 = new int[array2[0][0]][array2[0][1]];

//2.给其中的元素还原它的值

//注意i从1开始,第0行存放的是头部信息

for (int i = 1; i

array3[array2[i][0]][array2[i][1]] = array2[i][2];

}

//3.打印

System.out.println("输出还原的数组:");

for (int[] ints : array3) {

for (int anInt : ints) {

System.out.print(anInt+"\t");

}

System.out.println();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值