我是靠谱客的博主 野性火,这篇文章主要介绍五 . 数组五 . 数组,现在分享给大家,希望可以做个参考。

五 . 数组

一 . 数组概述

一.为什么使用数组?
   案例:如何存储100名学生的成绩?学生的全部成绩+1?
   1.使用变量存储,重复声名100个double类型的变量
     缺点:重复操作过多,数据冗余,无法统一操作等。
 1.数组:
     一组连续的存储空间,存储多个相同数据类型的数组。
   生活中的数组:
     书架,香烟......
   (1)特点:
     类型相同;长度固定。
 2.数组的创建:
   (1)声名数组类型变量,定义变量名
     int[] a = new int[5];
     数组中的每个数据被称为”数组元素“。
     对每个元素进行赋值或取值的操作被称为”元素的访问“。
     访问元素时,需要使用”下标/索引“(从0开始,依次+1,自动生成)。
     访问的语法:数组名[下标/索引]。eg:a[0] = 2;
   (2)下标的范围
     [0,array.length-1]
 3.数组的遍历:
   从头至尾,逐一对数组的每个元素进行访问。
   数组名.length 可获取动态数组长度。
 4.数组的默认值(初始化):
   整数:0;小数:0.0;字符:u0000;布尔:false;其他:null。
   在没有为数组元素赋值的情况下,依旧可以正确访问。

二 . 数组的创建

一.数组的创建
1.先声明,再分配空间:
  数据类型[]数组名;
  数组名 = new 数据类型[长度];
2.声名并分配空间:
  数据类型[] 数组名 = new 数据类型[长度];
3.声名并赋值(繁):
  数据类型[] 数组名 =new 数据类型[]{value1,value2,value3,...};
4.声名并赋值(简):
  数据类型[] 数组名 ={value1,value2,value3,...};//显式初始化,注意:不支持换行书写。
二.数组的排序
   JDK排序:java.util.Arrays.sort(数组名);//JDK提供(升序)
三.数组中常见的问题
   数组索引越界异常:ArrayIndexOutOfBoundsException(访问数组中不存在的索引)
   空指针异常:NullPointerException(数组引用存储的值为null而非数组的地址值时)
package Winter.array;
//数组的创建
public class CreatArray01 {
    public static void main(String[] args) {
        int[] a = new int[5];//声名int数组类型变量,定义变量名为a;分配长度为5的连续空间
        //可以存储5个int类型的值;
        //依此赋值
        a[0]=1;
        a[1]=2;
        a[2]=3;
        a[3]=4;
        a[4]=5;
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+" ");
        }
        System.out.println();
        //System.out.println(a[5]);//访问无效索引,会导致数组索引越界。
        double[] a1 = new double[5];
        for (int i = 0; i <a1.length ; i++) {
            System.out.print(a1[i]+" ");
        }
        System.out.println();
        String[] str = new String[5];
        for (int i = 0; i < str.length; i++) {
            System.out.print(str[i]+" ");
        }
    }
}
package Winter.array;

import java.util.Arrays;
import java.util.Scanner;

//给定一个整数数组,读入一个整数n,如果n在整数中存在,输出下标,不存在则输出-1.
public class Array02 {
    public static void main(String[] args) {
        int[] a1 = {23,24,25,26,27,28};
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的数字:");
        int n = sc.nextInt();
        int index = -1;
        //循环查找
        for (int i = 0; i < a1.length; i++) {
            if (a1[i]==n){
                //存在
                index = i;
                break;
            }
        }
        System.out.println(index);
        //升序遍历(JDK排序):java.util.Arrays.sort(数组名);//JDK提供(升序)
        Arrays.sort(a1);
        for (int i = 0; i < a1.length; i++) {
            System.out.println(a1[i]);
        }
        //降序遍历:需要手工完成元素的倒置
        int[] a2 = {11,22,33,44,55,66,77,88};
        int r1;
        for (int i = 0; i < a2.length/2; i++) {
            //两值交换,借助第三变量
            r1 = a2[a2.length-1-i];
            a2[a2.length-1-i] = a2[i];
            a2[i] = r1;
        }
        for (int i = 0; i < a2.length; i++) {
            System.out.print(a2[i]+" ");
        }
    }
}
package Winter.array;
/**
 * 自定义方法遍历数组
 * **:引用类型的变量作为参数传递给方法时,传递的是地址值。(共用同一个地址值)
 *     基本类型的变量作为参数传递时,传的是 值 。
 * */
public class Array04 {
    public static void main(String[] args) {
        int[] a2 = {23,23,24,35,34,35,35,34,34,12};
        printArray(a2);
    }
    public static void printArray(int[] a1){
        for (int i = 0; i < a1.length; i++) {
            System.out.print(a1[i]+" ");
        }
    }
}

最后

以上就是野性火最近收集整理的关于五 . 数组五 . 数组的全部内容,更多相关内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(145)

评论列表共有 0 条评论

立即
投稿
返回
顶部