Java基础学习4——数组

本文详细介绍了Java中的数组,包括声明、初始化和使用。文章涵盖了数组的静态和动态初始化,强调了数组作为引用类型的特点,解释了如何访问数组元素,特别是最后一个元素。此外,还讨论了使用foreach循环遍历数组的方法,并给出了两个实践练习,分别是输出数组并找出最大值,以及进行二维数组的行列互换操作。

java数据类型
1、基本数据类型
2、引用类型:类名 变量名 = new 类名;
数组就是一种引用类型
相同数据类型的集合用数组来表示


索引

  1. 声明和初始化数组
  2. 使用数组(包括foreach循环)
  3. 练习

声明和初始化数组

静态初始化

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

//简洁的方式
int[] arr2 = { 6, 7, 8, 9 };

动态初始化,小心越界

int[] arr3 = new int[5];

数组元素有一定的规律性,用循环的方式赋值

	  for (int i = 0; i < 5; i++)
	  {
	  // i是下标或索引,索引是从0开始计数,索引必须小于数组大小
	  	arr3[i] = i;
	  }

如何访问最后一个元素,数组名[ 数组的大小 - 1 ]

arr3[4] = 0;

静态初始化二维数组

在java中,没有所谓二维数组或者多维数组,只有一维数组
二维数组,数组元素是数组

int[][] arrArr = { { 1 }, { 2, 3 }, { 4, 5, 6 } };
int[][] arrArr2 = new int[][] { { 1 }, { 1, 2 }, { 4, 5, 6 } };

动态初始化二维数组

	int[][] arrArr3 = new int[3][];
	  
	int[] a1 = { 1 };
	int[] a2 = { 2, 3 };
	int[] a3 = { 4, 5, 6 };
 
	arrArr3[0] = a1;
	arrArr3[1] = a2;
	arrArr3[2] = a3;

使用数组


for (int i = 0; i < arrArr3.length; i++) 
{
	for (int j = 0; j < arrArr3[i].length; j++)
	{
		System.out.print(arrArr3[i][j] + "\t");
	}
	System.out.println();
}

foreach循环

foreach循环,针对数组和集合
foreach循环,不需要手动的修改循环变量,每循环一次,循环变量自动等于数组中下一个元素的值;
也不需要指出我们要循环多少次,自动循环数组大小,循环变量相当于临时变量,对循环变量的修改并不影响数组元素本身。

	System.out.println("------------------foreach循环---------------------");
	for (int i : arr1)
	{
 		System.out.print("arr1[" + i + "]=" + i + "\t");
 		i *= 10;
 	}
	System.out.println();

	System.out.println("------------------foreach循环2--------------------");
	for (int i : arr1) 
	{
		System.out.print("arr1[" + i + "]=" + i + "\t");
	}
	System.out.println();

练习

1、输出一维数组:8 3 6 1 4 18 ,并输出其中最大值。

//练习1代码如下:
package Lecture;
public class ExeMax {
     public static void main(String[] args) {
          int[] arr = { 8, 3, 6, 1, 4, 18 };
          System.out.println("输出一维数组:");
          for (int i = 0; i < arr.length; i++) {
               System.out.print(arr[i] + " ");
          }
          int max = arr[0];
          //每個數組都有一個屬性length,它代表數組的大小
          for (int j = 1; j < arr.length; j++) {
               if (arr[j] > max) {
                    max = arr[j];
               }
          }
          System.out.println("\n一维数组的最大值为:" + max);
     }
}

2、对下列数组进行行列互换

行列互换前
1 2 3
4 5 6
7 8 9

行列互换后
1 4 7
2 5 8
3 6 9

//练习2代码如下:
package Lecture;
import java.util.Arrays;
public class Practice3 {
     public static void main(String[] args) {
     
          int[] arr1=new int []{1,2,3};
          int[] arr2=new int []{4,5,6};
          int[] arr3=new int []{7,8,9};
          
          System.out.println("行列互换前: ");
          //行列互换前第一行
          for(int n:arr1)
          {
               System.out.print(" "+n);
          }
          System.out.println();
          //行列互换前第二行
          for(int n:arr2)
          {
               System.out.print(" "+n);
          }
          System.out.println();
          //行列互换前第三行
          for(int n:arr3)
          {
               System.out.print(" "+n);
          }
          System.out.println();
          
          System.out.println("行列互换后: ");
          //行列互换后第一行
          Arrays.fill(arr1,1,2,4);
          Arrays.fill(arr1,2,3,7);
          for(int n:arr1)
          {
               System.out.print(" "+n);
          }
          System.out.println();
          //行列互换后第二行
          Arrays.fill(arr2,0,1,2);
          Arrays.fill(arr2,1,2,5);
          Arrays.fill(arr2,2,3,8);
          for(int n:arr2)
          {
               System.out.print(" "+n);
          }
          System.out.println();
          //行列互换后第三行
          Arrays.fill(arr3, 0,1,3);
          Arrays.fill(arr3, 1,2,6);
          Arrays.fill(arr3, 2,3,9);
          for(int n:arr3)
          {
               System.out.print(" "+n);
          }
          System.out.println();
     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值