Java基础-数组

Java基础-数组

概念

数组是相同数据类型元素的集合。

详细解释
  • 数组本身是引用数据类型,即对象。到那时数组可以存储基本数据类型,也可以存储引用数据类型。
  • 数组是一种线性数据结构。
  • 数组其实就是一个容器。
  • 可以自动给数组中的元素从0开始编号,方便操作这些元素。
数组声明的两种方式
  • 数组类型 [] 数组名字 举例:int [] a;

  • 数组类型 数组名字 [] 举例:int a [];

  • Java数组在创建时必须给给定的长度,一旦定义就不可修改

  • 在内存空间中是一个连续的空间 为其中每个存储空间初始化值
    在这里插入图片描述

注:在Java语言中两种声明方法没有任何区别,但是建议大家用第一种,避免混淆a的数据类型。

数组创建的三种方式
  • 声明数组的同时,根据指定的长度分配内存,但数组中的元素都为默认的初始化值。

    int [] a = new int[10];

  • 声明数组并分配内存,同时将其初始化

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

  • 相对简略的语法,与前一种方式相同

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

静态和动态创建
  • 动态创建数组(没有为元素赋值,可以结合for循环进行赋值)

    char [] d = new char[10];

  • 静态创建数组(在创建的时候,为每一个元素赋初值)

    int e = new int{1,2,3,4,5,6};

数组长度

使用length属性

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

System.out.println(a.length);
数组元素的访问

数组名字[索引] 例如:a[0] , a[1];

注:

  • 数组的索引从0开始。
  • 索引的数据类型是整数。
  • 索引最大值和数组长度始终差1。
数组迭代的两种方式
  • for循环

    int  []  a  = new  int  []{1,2,3,4,5,6};
    for(int i = 0;i < a.length;i++){
        System.out.println(a[i]);
    }
    
  • 增强for循环

    int b = new int []{1,2,3,4,5,6};
    for(数组元素的类型  临时变量名字 : 数组的名字){
        System.out.printl(临时变量的名字)}for(int x : a){
        System.out.println(x);
    }
    
    代码演示
import java.awt.*;
import java.lang.reflect.Array;
import java.util.Arrays;

public class ArrayDemo {
    public static void main(String[] args) {
     int [] a = new int[10];
     int b [] =new int[10];
         //创建时直接初始化,根据内容的数量来确定数组的长度.
     int c [] = new int[]{1,2,3,4,5,6,7,8,9};
        //创建数组的三种方式
     int [] d = {1,2,3,4,5,6};
        System.out.println(a);
        //[I@1b6d3586  这是对象的hashCord,默认调用的Object中的hashCord方法
        System.out.println(Arrays.toString(a));
        //需要调用此方法才能正确显示数组
        System.out.println(Arrays.toString(c));

        Car car0 = new Car("car0");
        //一旦创建对象就会在堆空间中有一个存储位置
       
        //中如果存储的是基本类型,存储的是具体的值
        Car car1 = new Car("car1");
        Car car2 = new Car("car2");
        Car car3 = new Car("car3");
        Car car4 = new Car("car4");
          //如果存储的是引用类(类类型),会存储对向的引用
        Car[] cars = new Car[]{car0,car1,car2,car3,car4};
        System.out.println(Arrays.toString(cars));
    }
}
public class Car {
    private String name;

    public Car(String name){
        this.name =name;
    } //构造方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "name:"+this.name;
    }
}
数组访问和索引
import java.util.Arrays;

public class ArrayDemo2 {
    public static void main(String[] args) {
        int a [] = new int[5];
        System.out.println(Arrays.toString(a));
        
         /*
           访问数组元素
             数组中每个位置都会有一个索引(下标,标号)
             索引类型时整数
             区间: 0--数组的长度-1
                  数组长度

             注意使用合法的索引访问,否则会程序终止,抛出异常
         */

        byte b = 10;
        a[0] = b;
        a[1] = 2;
        a[2] = 3;
        a[3] = 4;
        a[4] = 5;
        //a[5] = 3;,不合法,运行时才会出现的异常(数组越界)
        System.out.println(Arrays.toString(a));
        System.out.println(a.length);
        System.out.println(a[0]);

        int [] c = {1,2,3,4,5,6,7,8,9};
        for (int i = 0; i < c.length;i++){
            System.out.println(c[i]);//取出数组第i个元素
        }
        //增强for循环
        //foreach循环  jdk5以后更新,不用计数
        for( int itam : c ){
            System.out.println(itam);
        }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值