Java学习第四天:数组

本文详细介绍了Java中的数组概念,包括定义、特点、创建与初始化。数组的常见操作包括遍历、拷贝以及使用java.util.Arrays类进行排序和填充。此外,还探讨了多维数组的声明、初始化及长度获取。示例代码展示了如何操作数组,如遍历、拷贝和排序。
摘要由CSDN通过智能技术生成

1.数组的概念

        <1.>数组的定义

              数组是相同类型数据的有序集合,数组描述的是相同类型数据的若干个元素,按照一                      定的先后次序排列组合而成。

        <2.>数组的四个基本特点

                    Ⅰ.长度确定,一旦被创建,数组大小不可以改变;

                    Ⅱ.元素的类型必须是相同类型;

                    Ⅲ.数据类型可以是任何数据类型,包括基本数据类型和应用数据类型;

                    Ⅳ.数组变量属于应用类型,数组也是对象;

        <3.>创建数组和初始化

                <3.1>数组声明

                        Ⅰ. type[]  arr_name;

                        Ⅱ.type arr_name[];

                        注:只有再实例化数组对象时,JVM分配空间,这时才有数组长度有关;

                <3.2>初始化

                        Ⅰ.静态初始化

                                int [] a = {1,2,3};

                                Mans[] mans = {new Man(1,1),new Man(2,2)};

                        Ⅱ.动态初始化

                                int [] a = new int[2];

                                a[0] = 1;

                                a[1] = 2;

                        Ⅲ.默认初始化(隐式初始化)

                                int[] a = new int [2];

2.数组的常见操作

        <1.>遍历:通过循环遍历数组的所有元素;     

//定义以及初始化数组
int [] a = new int [5];
for (int i = 0;i<a.length;i++){
    a[i] = i*10;    
}    
//for 循环遍历数组
for (int i = 0;i<a.length;i++){
    System.out.println(a[i]);
}
//for-each循环(不涉及下标操作,不能修改数组中元素的值)
for(int temp:a){
    System.out.println(temp);
}

        <2.>拷贝:某个数组的内容拷贝到另一个数组内;

//定义数组以及初始化数组
String[]  s = {"百度","腾讯","谷歌","火狐","网易"};
//数组拷贝
String[] sBak = new String[5];
System.arraycopy(s,sBak,0,s.length);

        <3.>数组操作(java.util.Arrays类)

方法操作
Arrays.toString(a)打印a数组中元素的值
Arrays.sort(a)对a数组元素进行从小到大排序
Arrays.fill(a,2,4,100)将a数组2到4索引替换为100

        <4.>Compareable接口          

import java.util.Arrays;

public class TestComparable {
    public static void main(String[] args) {
          Man[] man = {new Man(3,"a"),new Man(60,"b"),new Man(2,"c")};
          Arrays.sort(man);
        System.out.println(Arrays.toString(man));
    }
}
class Man implements Comparable{
    private int age;
    private int id;
    private String name;

    public int getAge() {
        return age;
    }

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

    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 Man(int age,  String name) {
        this.age = age;
        this.name = name;
    }

    public Man() {
    }

    @Override
    public int compareTo(Object o) {
        Man man = (Man) o;
        if(this.age<man.age){
            return -1;
        }
        if(this.age> man.age){
            return 1;
        }
        return 0;
    }

    @Override
    public String toString() {
        return this.name;
    }
}

        运行结果:[c, a, b]

        注:如果p比q大,返回一个大于0的整数,如果p比q小,返回一个小于0的整数,如果p=q,                   返回0;

3.多维数组

        <1.>二维数组的声明

                int [][] a = new int [3][];

                a[0] = new int [2];

                a[1] = new int [4];

                a[2] = new int [3];

        <2.>二维数组的初始化

                Ⅰ.静态初始化

                        int [][] a = {{1,2,3},{4,5,6},{7,8,9}};

                Ⅱ.动态初始化

                        int [] [] a = new int [3][];

                        a[0] = new int[]{1,2};

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

                        a[2] = new int[]{7,8,9};

        <3.>获取二维数组的长度

                Ⅰ.获取二维数组第一维数组的长度

                        a.length;

                Ⅱ.获取第二维第一个数组长度

                        a[0].length;

                       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值