Java数组的定义,声明,初始化和遍历

数组的定义

数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。数组的三个基本特点:

1. 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。

2. 其元素必须是相同类型,不允许出现混合类型。

3. 数组类型可以是任何数据类型,包括基本类型和引用类型。

数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中存储的。

数组的声明

1. 声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。

2. 声明一个数组的时候并没有数组真正被创建。

3. 构造一个数组,必须指定长度。

创建基本类型一维数组 demo:

public class Test {
    public static void main(String args[]) {
        int[] s = null; // 声明数组;
        s = new int[10]; // 给数组分配空间;
        for (int i = 0; i < 10; i++) {
            s[i] = 2 * i + 1;//给数组元素赋值;
            System.out.println(s[i]);
        }
    }
}

基本类型数组内存分配图:

创建引用类型一维数组demo:

class Man{
    private int age;
    private int id;
    public Man(int id,int age) {
        super();
        this.age = age;
        this.id = id;
    }
}
public class AppMain {
    public static void main(String[] args) {
        Man[] mans;  //声明引用类型数组;
        mans = new Man[10];  //给引用类型数组分配空间;

        Man m1 = new Man(1,11);
        Man m2 = new Man(2,22);  

        mans[0]=m1;//给引用类型数组元素赋值;
        mans[1]=m2;//给引用类型数组元素赋值;

    }

}

引用类型数组内存分配图:

数组的初始化:

·静态初始化:

除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。

静态初始化数组 demo:

int[] a = { 1, 2, 3 };// 静态初始化基本类型数组;
Man[] mans = { new Man(1, 1), new Man(2, 2) };// 静态初始化引用类型数组;

·动态初始化:

数组定义与为数组元素分配空间并赋值的操作分开进行。

动态初始化数组 demo:

int[] a1 = new int[2];//动态初始化数组,先分配空间;
a1[0]=1;//给数组元素赋值;
a1[1]=2;//给数组元素赋值;

·数组的默认初始化:

数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。

默认初始化 demo:

int a2[] = new int[2]; // 默认值:0,0
boolean[] b = new boolean[2]; // 默认值:false,false
String[] s = new String[2]; // 默认值:null, null

数组的遍历:

 数组元素下标的合法区间:[0, length-1]。我们可以通过下标来遍历数组中的元素,遍历时可以读取元素的值或者修改元素的值。

数组的遍历 demo:

public class Test {
    public static void main(String[] args) {
        int[] a = new int[4];
        //初始化数组元素的值
        for(int i=0;i<a.length;i++){
            a[i] = 100*i;
        }
        //读取元素的值
        for(int i=0;i<a.length;i++){
            System.out.println(a[i]);
        }
    }
}

一个综合的例子:

package cn.ftf.o1;
/**
 * 测试数组
 * @author 房廷飞
 *
 */
public class TextArrays {
    public static void main(String[] args) {
        int[] arr01=new int[10];//声明数组和大小,此时是空的
        String[] arr02=new String[4];
        //通过遍历为对象赋值
        for(int i=0;i<arr01.length;i++) {
            arr01[i]=i*10;
        }
        //打印一下
        for(int i=0;i<arr01.length;i++) {
            System.out.println(arr01[i]);
        }
        User[] arr03=new User[3];
        //初始化User类型
        arr03[0]=new User(1001,"房廷飞0");
        arr03[1]=new User(1002,"房廷飞1");
        arr03[2]=new User(1003,"房廷飞2");
        //遍历打印User对象的name
        for(int i=0;i<arr03.length;i++) {
            System.out.println(arr03[i].getName());
        }

    }
}

class User{
    private int id;
    private String name;
    //右键自动创建构造器

    //右键自动生成set,get方法
    public int getId() {
        return id;
    }
    public User(int id, String name) {
        super();
        this.id = id;
        this.name = name;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

2019-03-14    23:36:29    房廷飞        期待明天更好的自己!

原文地址:https://www.cnblogs.com/fangtingfei/p/10534421.html

时间: 2024-10-10 07:49:12

Java数组的定义,声明,初始化和遍历的相关文章

JAVA数组的定义及用法

数组是有序数据的集合,数组中的每一个元素具有同样的数组名和下标来唯一地确定数组中的元素. 1. 一维数组 1.1 一维数组的定义 type arrayName[]; type[] arrayName; 当中类型(type)能够为Java中随意的数据类型,包含简单类型组合类型,数组名arrayName为一个合法的标识符,[]指明该变量是一个数组类型变量. 另外一种形式对C++开发人员可能认为非常奇怪,只是对JAVA或C#这种开发语言来说,另外一种形式可能更直观,由于这里定义的仅仅是个变量而已,系统

&lt;24&gt;【掌握】二维数组指针定义、初始化+

[掌握]二维数组指针定义.初始化 数组指针: 定义一个指针变量,让这个指针变量指向一维数组的元素 二维数组指针 行指针,用来指向二维数组的每一行,存放的是行的首地址 定义格式: 数据类型 (*行指针变量名)[数组第二维的长度]; 二维数组指针的初始化 int a[2][3]; int b[2][2]; float f1[4][4]; //假设我要定义一个指向数组a的一个行指针 // a = &a[0] = &a[0][0] = a[0] int (*p)[3] = a; 二维数组指针的使用

数组的定义和初始化

一.定义 数组的维数必须用大于等于1的常量表达式来定义 整形字面值常量.枚举常量或者常量表达式初始化的整形const对象: 二.初始化 1.显示初始化数组元素 *在函数体外定义的内置数组,其元素均初始化为0: *在函数体内定义的内置数组,其元素无初始化: *不管数组在哪里定义,如果其元素为类类型,则自动调用该类的默认构造函数进行初始:如果该类没有默认构造函数,则必须为该数组的元素提供显示初始化 2.特殊的字符数组 3.不允许数组直接复制和赋值 // SHUZU.cpp : Defines the

C语言中二维字符数组的定义和初始化

本篇日志关于二维字符数组的定义和初始化.我相信这篇文章属于菜鸟级的,高手请直接无视. 一般来说,我们可能会希望定义一个二维字符数组并且在定义的时候就用一些字符串来初始化它.比如说: 1 char testcase[30][MAX_LENGTH] = {"jo","vicent","tom","honey","gigi","lily","susan","pet

C语言字符数组的定义与初始化

C 语言字符数组的定义与初始化 1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理:若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即'\0' ).2.字符数组与字符串在c 语言中,将字符串作为字符数组来处

java数组的定义与使用方法

数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来唯一地确定数组中的元素. 一维数组 一.一维数组的定义 type arrayName[]; 其中类型(type)可以为Java中任意的数据类型,包括简单类型组合类型,数组名arrayName为一个合法的标识符,[]指明该变量是一个数组类型变量.例如: int intArray[]; 声明了一个整型数组,数组中的每个元素为整型数据.与C.C++不同,Java在数组的定义中并不为数组元素分配内存,因此[]中不用指出数组中元素个数,即数组长

Java的Vector的二维数组的定义及初始化

map=new Vector<Vector<Integer>>(m); for(int i=0;i<m;++i) { Vector<Integer>temp=new Vector<Integer>(); for(int j=0;j<m;++j) { temp.add(-1); } map.add(temp); } 原文地址:https://www.cnblogs.com/z2529827226/p/11620913.html

Java数组的创建和初始化

我们说到数组,可能有的人就会比较害怕了,其实,数组只是把对象序列(很多个对象)或者基本类型序列(很多个基本类型)放在一起而已.数组是通过方括号下标操作符[]来定义和使用的.如果要定义,创建一个数组,只需在类型名后加上一对方括号[]即可.如果要定义二维数组,那么,就要加两个方括号[].可以多个维度联想一下,只要学会了一维数组,那么二维数组也是一维数组的扩展而已.而数组的初始化有下面两种方式. 特殊初始化 用new一个对象进行初始化 查看初始化示例,请看:break易站

JAVA数组的定义方式

JAVA中,数组有以下几种定义方式: 1.先定义数组中元素的个数,然后再进行元素赋值 int[] a=new int[2]; a[0]='a'; a[1]='b';a[2]='c'; 2.元素个数与元素值同时定义,有以下两种方式 int[] a={3,4,5};int[] a=new int[]{44,55,66}; 3.以上三种方式,可以将[]写数组名称后面 int a[]=new int[3];int a[]={3,4,5};int a[]=new int[]{44,55,66};