Java内功提升之数组

(一)什么是数组
数组,可以理解为一个巨大的“容器”,里面可以按顺序存放多个类型相同的数据。
比如:存储4名学生的成绩。
这里写图片描述
数组中的元素可以通过,数组下标来访问,比如:scores[0]就可以取到第一个元素。
(二)Java中数组的使用

1)声明数组
语法:  数组类型[] 数组名
或者     数组类型    数组名[]
比如:
int[]     num ;
double  scores[] ;

2)分配空间
其实,**就是指定数组中最多可以存储多少个元素**
语法:数组名 = new 数组类型 [数组长度];
其中,数组长度就是数组中存放元素的个数。
num = new int[6];
scores = new double[6];
names = new String[6];
话说,其实,你也可以这样(***声明数组的同时为它分配空间***):
语法: 数组类型[] 数组名 = new 数组类型[数组长度];
或者   数组类型 数组名[] = new 数组类型[数组长度];
int[] num = new int[6];
double scores[] = new double[6.0];  
String[] names = new String[6];

3)数组的赋值
分配空间后就可以向数组中放数据了,**可以通过下标来进行赋值!**
比如:
    scores[0]=89.0;
    names[0]="一份耕耘,一份收获!";
    num[5] = 77;
4)处理数组中数据
    对赋值后的数组可以进行操作,比如:
     System.out.println("names中的第一个元素的值是:" + names[0]);
 其实,**“声明+分配空间+赋值”可以一气呵成!** ,比如:
      int[] scores={34,56,78,89};
      或者
      int[] scores= new int[]{34,56,78,89};
      ***注意:本语句中右边的int[]中必须为空!!!(重要的事说3遍!!!)***

(三)使用循环操作Java中的数组
使用循环控制数组成员的操作。比如:

int scores[]={34,76,56,89};
for(int i = 0 ; i<scores.length ; i++ ){
    System.out.println("数组中第"+(i+1)+ "个元素的值是: " + scores[i]);
    }
运行结果:
    数组中第1个元素的值是:34
    数组中第1个元素的值是:76
    数组中第1个元素的值是:56
    数组中第1个元素的值是:89

⚠:1)数组下标是从0开始的!!!
2)数组下标的范围是:0 到 数组长度减-1(注意不要越界);
数组越界案例:
int scores[] = new int[2];
scores[2] = 40; //数组元素正确赋值的方式是:scores[0] =50 ; scores[1] = 40;
编程练习:
完成 JAVA 程序,实现输出数组中的最大值、最小值和平均值

public class HelloWorld {

    public static void main(String[] args) {

        // 定义一个整型数组,并赋初值
        int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };

        int max = nums[0]; // 假定最大值为数组中的第一个元素
        int min = nums[0]; // 假定最小值为数组中的第一个元素
        double sum = 0;// 累加值
        double avg = 0;// 平均值

        for (int i = 0; i < nums.length; i++) { // 循环遍历数组中的元素
        // 如果当前值大于max,则替换max的值
            if(nums[i] > max){

                max = nums[i];
            }

            // 如果当前值小于min,则替换min的值
            if (nums[i] < min){
                min = nums[i];
            }

        // 累加求和
        sum = sum + nums[i];

        }

        // 求平均值
       avg = sum / nums.length ;

        System.out.println("数组中的最大值:" + max);
        System.out.println("数组中的最小值:" + min);
        System.out.println("数组中的平均值:" + avg);
    }
}

(四)使用Arrays类是java中提供的一个工具类,它位于java.util包中,这个类中包含了一些直接操作数组的排序,搜索等。
(1)Arrays常用的方法:
1)排序
语法:Arrays .sort(数组名);
可以使用sort()方法实现对数组的排序,只要将数组名放在sort()的括号中即可,当然,这是一个默认的升序排序!!!
比如:

//导入Arrays类
import java.util.Arrays;

public class HelloWorld {
    public static void main(String[] args) {

        // 定义一个字符串数组
        int[] scores = { 56,67,90};

        // 使用Arrays类的sort()方法对数组进行排序
        Arrays.sort(hobbys);
        System.out.println("排序后的元素为:");
        //循环遍历并输出数组中的元素
        for( int i = 0 ; i < i.length ; i++ ){
        System.out.println(scores[i]);
    }
}
2)将数组转化为字符串
  语法: Arrays.toString(数组名);
  说明:可以使用toString()方法将一个数组转换成字符串,按顺序将多个字符串连接在一起,多个元素之间使用逗号与空格隔开即可。
  比如:
//导入Arrays类
import java.util.Arrays;

public class ArraysTest {
    public static void main(String[] args) {

        // 定义一个字符串数组
        String[] bobdys = { "sports", "game", "movie" };

        // 使用Arrays类的sort()方法对数组进行排序
        Arrays.sort(bobdys); 
        // 使用Arrays类的toString()方法将数组转换为字符串并输出
        System.out.println(Arrays.toString(bobdys));
    }
}

运行结果为:
[game, movie, sports]

(2)使用foreach来操组数组
foreach 并不是java中的关键字,是for语句的特殊简化版本,在遍历数组跟集合时,更加方便快捷。
语法:
for(元素类型 元素变量 :遍历对象){
执行代码

比如:

import java.util.Arrays;

public class foreachTest {

    public static void main(String[] args) {

        // 定义一个整型数组,保存成绩信息
        int[] scores = { 89, 72, 64, 58, 93 };
        System.out.println("使用for循环输出数组中的元素:");
        for(int i = 0 ; i < scores.length ; i++ ){
            System.out.println(scores[i]);
        }

            System.out.println();
            System.out.println("使用foreach循环输出数组中的元素:");
        // 使用foreach遍历输出数组中的元素
        for ( int score : scores) {
            System.out.println(score);
        }
    }
}

运行结果:
使用for循环输出数组中的元素:
89
72
64
58
93
使用foreach循环输出数组中的元素:
89
72
64
58
93

(三)Java中的二维数组
二维数组,指的就是一种特殊的一维数组,其中,它的元素成员就是一维数组。
语法:
1)声明数组并分配空间
数据类型[][] 数组名 = new 数据类型[行的个数][列的个数];
或者
数据类型[][] 数组名;
数组名 = new 数据类型[行的个数][列的个数];

    比如:
    //定义一个5行4列的数组
    int[][] sum = new int[5][4];
    或者
    int[][] sum;
    sum = new int[5][4];
2)赋值
         二维数组与一维数组的赋值基本相同,均是通过下标来进行赋值的,***索引也是从零开始的呀!***
         语法:数组名[行索引][列索引]=值;
         比如:
         //给3行8列的元素赋值
         num[3][8] = 89;
     也可以声明的同时进行赋值
     数据类型[][] 数组名={{值1,值2....},{值1,值2....},{值1,值2....},{值1,值2..}};
     比如:int[][]  scores= { {45,78,89},{23,45,25,67}};
 3)处理数组
      二维数组跟一维数组的处理方式基本一样,只是二维数组多了一对下标而已。
      比如:
        //定义一个3行4列的二维数组
          int num[][] ={ {4,56,7,34},{23,45,56,67},{12,13,15,7}};
          //遍历行
          for(int i = 0 ;i < num.length ; i++){
            //遍历行中元素
              for( int j = 0; j < num[i].length ; j++ ){
                  //输出每个元素
                  System.out.println(num[i][j]);
            }
            //换行实现
            System.out.println();
        }
*需要了解的:在定义二维数组时也可以只指定行的个数,然后再为每一行分别指定列的个数。如果每行的列数不同,则创建的是不规则的二维数组,比如:   */

这里写图片描述

运行结果:
1
2
3

编程小题:定义一个两行三列的二维数组 names 并赋值,使用二重循环输出二维数组中的元素。

public class HelloWorld {
    public static void main(String[] args) {

        // 定义两行三列的二维数组并赋值
                 String names[][]={{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};
        // 通过二重循环输出二维数组中元素的值
        for (int i = 0; i < names.length; i++) {

            for (int j = 0; j < names[i].length; j++) {

                System.out.println(names[i][j]);
            }

            System.out.println();
        }
    }
}

输出结果:
tom
jack
mike

zhangsan
lisi
wangwu

OK ,这下对数组这个渣渣的理解就很清楚了!!!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值