Java语言中数组的基本语法及案例

什么是数组

1.数据是一组具有相同类型和名称的变量的有序集合。

2.组成数组的这些变量称为数组的元素,一个数组可以含有若干元素。

3.数组的下标,用来指出某个元素在数组中的位置。

4.数组中的第一个元素下标默认为0,第二个元素为1,以此类推,如果某一数组有n个元素。则其最大的下标为n-1。

数组的创建

1.数组有两种一种是一维数组,另一种是多维数组。

2.多维数组:是包含一个或多个的数组。

3.在Java中常用的数组有一维数组和二维数组。

一维数组

语法格式:

数据类型[] 数组名 = new 数据类型[长度];

二维数组

语法格式:

数据类型[][] 数组名 = new 数据类型符[长度1][长度2];

例:

一维数组初始化

为数组元素赋初值的语法形式:

数据类型符[] 数组名=new 数据类型符[]{初值列表};

数据类型符[] 数据名={初值列表1};

例:

二维数组初始化

为数组元素赋初值的语法形式:

数据类型符[][] 数组名=new 数据类型符[][]{{初值列表},....,{初始值列表n}};

数据类型符[][] 数据名={{初值列表1},...,{初值列表n}};

例:

数组元素的引用

使用数组名与下标可以唯一确定数组中的某个元素,从而实现对元素的访问。

例如:

在访问数组元素时,要注意不要使下标越界,例如:

否则就会报错

foreach循环

foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全替代for语句,任何foreach语句都可以改写为for语句。foreach不是一个关键字,习惯上将这种特殊的for语句称之为foreach语句。

语法格式:

for(数据类型 变量 :数组或集合){

        //语句;

}

例:

for与foreach比较

foreach

for

异同点

1.for与foreach都能对数组进行遍历

2.for通过变换数组下标的形式访问数组元素,因此可以改变数组元素的值

3.foreach通过迭代变量的形式读取数组元素,所以不能改变数组元素的值

注意事项:

1.数组下标从0开始,最后一个元素的索引为 length - 1;


2.使用数组时,要确保下标在有效范围内,避免越界异常;


3.在处理大量数据时,可以考虑使用其他数据结构,如 ArrayList、LinkedList;

程序实例

题目一:

用冒泡排序法对5个数按升序进行排序。

冒泡法:将两个相邻的两个数比较,将大的数调到后面。

建立一个一维数组使其循环比较

for(int i=0;i<4;i++){    //比较4轮
    for(int j=0;j<4-i;j++){    //每轮的比较次数
       if(a[j]>a[j+1]){    //相邻两数进行比较
        //....    //两个元素交换
        }
    }
}

4轮数据替换过程

两个数之间进行比较,若比较数大于被比较数就越往后调,反之则不变,比较下一个数。

源代码:
小结:

1.n个元素需要n-1轮比较,第一轮比较次数为n-1次。随着轮数增加,比较次数递减。。

2.如果需要进行降序排序将比较条件修改为a[j]<a[j+1]。

题目二:

定义一个二维4*3整型数组,使用随机数生成数组元素值(1-100之间),求该数组中最大运输及其所在行下标和列下标。

1.先创建一个二维数组,生成随机数
int[][] arr1 =new int[4][3];
for (int i=0;i<arr1.length;i++){
    for(int j=0;j<arr1[i].length;j++){
        arr1[i][j] = (int)(Math.random()*100);
    }
}
2.打印数组,验证结果
for(int i=0;i<arr1.length;i++){
    System.out.println(Arrays.toString(arr1[i]));
}
Location location = locateLargest(arr1);
System.out.println("最大值是:"+"arr1["+location.row+"]["+location.column+"]="+location.maxValue);
3.建立新方法,存储最大值及最大值下标
public static Location locateLargest(int[][] arr){
    Location location = new Location();
    int row = 0;
    int column = 0;
    int maxValue = 0;
}
4.遍历数组,获取元素最大值及定位
for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                if (arr[i][j] > maxValue) {
                    row = i;
                    column = j;
                    maxValue = arr[i][j];
                }
            }
        }
完整代码:
public class Array {
    public static void main(String[] args) {
        int[][] arr1 = new int[4][3];
        //生成随机数数组
        for (int i = 0; i < arr1.length; i++) {
            for (int j = 0; j < arr1[i].length; j++) {
                arr1[i][j] = (int)(Math.random() * 100);
            }
        }
 
        //打印数组,方便结果验证
        for (int i = 0; i < arr1.length; i++) {
            System.out.println(Arrays.toString(arr1[i]));
        }
 
        Location location = locateLargest(arr1);
        System.out.println("最大值是:" + "arr1[" + location.row + "][" + location.column + "]=" + location.maxValue);
    }
 
    //该方法返回的对象包含了最大值以及最大值的下标
    public static Location locateLargest(int[][] arr) {
        Location location = new Location();
        int row = 0;
        int column = 0;
        int maxValue = 0;
 
        //遍历数组,获取元素中的最大值及其定位
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                if (arr[i][j] > maxValue) {
                    row = i;
                    column = j;
                    maxValue = arr[i][j];
                }
            }
        }
 
        location.row = row;
        location.column = column;
        location.maxValue = maxValue;
        return location;
    }
}
 
class Location {
    public int row;
    public int column;
    public int maxValue;
}
总结:

要熟练掌握for循环来遍历数组中的元素,熟知随机数组的创建方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值