Java ---数组与多维数组

目录

数组的定义

创建数组和初始化

初始化

 数组的遍历与拷贝

数组的拷贝:

 java.util.Arrays 类

多维数组


数组的定义

数组是相同类型数据的有序集合。其中,每一个数据称为一个元素,每一个元素可以通过一个索引也就是下标来访问。

数组四个基本特点:

  • 长度是确定的。一旦被创建,大小长度就是不可变的
  • 其元素的类型必须是相同类型,不允许出混合类型
  • 数组类型可以是任何数据类型,包括基本类型和引用数据类型
  • 数组变量属于引用类型,数组也是对象,其中的元素相当于对象的属性

创建数组和初始化

数组的声明:

数据类型【】 数组名;

数据类型 数组名 【】;

创建的语法格式:

数据类型 【】数组名=new 数据类型 【长度】;

或: 数据类型 数组名【】=new 数据类型 【长度】;

初始化

默认初始化:

 动态初始化:

 静态初始化:

 数组的遍历与拷贝

普通遍历:

 for--each遍历:专门用于读取数组或容器中所有的元素

  •  for--each增强for循环在遍历数组过程中不能修改数组中某元素的值
  • for--each仅适用于遍历,不涉及有关索引的操作

数组的拷贝:

System.arraycopy(object src , int srcpos , object dest , int destpos , int length )

         该方法可以将 src 数组里的元素值赋给 dest 数组的元素,其中 srcpos 指定从 src 数组的第几个 元素 开始赋值,length 参数指定将 src 数组的多少个元素赋给 dest 数组的元素。

package com.bjsxt.Array;

public class Test01 {

    public static void main(String[] args) {
        //int [] arr1=null;
        int [] arr1=new int[5];
        //默认初始化

        arr1[0]=1;arr1[1]=2;
        //动态初始化


        //遍历
        for (int i = 0; i <arr1.length ; i++) {
            arr1[i]=2*i+1;//数组是对象,元素对应对象的属性
        }

       int arr2[]={1,2,3};
        //静态初始化



        String[] s={"艾瑞利亚","劫","塞拉斯","努努"};

        String [] ss=new String[5];

        System.arraycopy(s,0,ss,0,s.length);
           for(int i=0;i<ss.length;i++){
               System.out.println(ss[i]+'\t');
           }

    }
}

 java.util.Arrays 类

Arrays类包含了:排序、查找、填空、打印内容等常见的数组操作。

package com.bjsxt.Array;
import java.lang.reflect.Array;
import java.util.Arrays;

/*
*测试java.util,Array类
* 提供了常见的:排序、查找、填充、打印数组的相关方法*/
public class Test3 {
    public static void main(String[] args) {
        int [] a={22,11,33,66,77,88,99};

        System.out.println(Arrays.toString(a));

       Arrays.sort(a);//排序

        System.out.println(Arrays.toString(a));

        System.out.println("该元素的索引:"+Arrays.binarySearch(a,22));
        //查找数组元素在排序后的位置  没有择返回负数(只能排序后才能使用)
        Arrays.fill(a,2,4,100);
       //将索引2到4 元素替换为100  左开右闭
        System.out.println(Arrays.toString(a));
    }
}

多维数组

多维数组可以看出以数组为元素的数组。不仅仅局限于二维,但最常见是二维数组。

package com.bjsxt.Array;

import java.util.Arrays;

public class Test04 {
    public static void main(String[] args) {
         //每一个以为数组代表一行数据
        Object [] emp0={ 1001,"WJH0",18,"程序员","2019-9-9"};
        Object [] emp1={ 1002,"WJH1",19,"程序员","2019-10-9"};
        Object [] emp2={ 1003,"WJH2",20,"程序员","2019-11-9"};

        Object[][] emps=new Object[3][];
        emps[0]=emp0;
        emps[1]=emp1;
        emps[2]=emp2;

        //打印二维数组的内容

        for(int i=0;i<emps.length;i++)
        {
            System.out.println(Arrays.toString(emps[i]));
        }


        //使用嵌套循环打印二维数组
        for (int i = 0; i < emps.length; i++) {
            for (int j = 0; j <emps[i].length ; j++) {
                System.out.print(emps[i][j]+"\t");
            }
            System.out.println();
        }
    }
}
package com.bjsxt.Array;

/*
*
*
*
*
*
* */
public class Test05 {
    public static void main(String[] args) {

        Emo emp0=new Emo(01,"吴",18,"码农1","2003-04-12-1");
        Emo emp1=new Emo(02,"某",18,"码农2","2003-04-12-2");
        Emo emp2=new Emo(03,"人",18,"码农3","2003-04-12-3");

        Emo [] emps={emp0,emp1,emp2};

        Emo[] emps1=new Emo[3];
        emp0=emps1[0];
        emp1=emps1[1];
        emp2=emps1[2];


        for (int i = 0; i <emps.length ; i++) {
            System.out.println(emps1[i]);
        }

    }
}

class Emo{
    private int id;
    private String name;
    private int age;
    private String job;

    private String hiredate;

    @Override
    public String toString() {
        return id+'\t'+name+'\t'+age+'\t'+job+"\t"+hiredate;
    }

    public Emo(){}
    public Emo(int id, String name, int age, String job, String hiredate) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.job = job;
        this.hiredate = hiredate;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    public String getHiredate() {
        return hiredate;
    }

    public void setHiredate(String hiredate) {
        this.hiredate = hiredate;
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值