详解数组

数组         所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。

                  定义:有序数据的集合    数组中的每个元素,对应一个相同的数组名和唯一的一个下标。

                 例:若输入代码:   int [ ] a = {1,2,3,4,5};   int a[ ] = {1,2,3,4,5};

                    System.out.println(a[0]);

                    在控制台会输出数字  1。

一、数组概念:

   * 数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。

   *数组既可以存储基本数据类型,也可以存储引用数据类型。

二、数组的定义格式

*格式一:数组类型[ ]数组名;(常用 )

*格式二:数组类型  数组名 [ ];(不提倡)

*注意:这两种定义做完了,数组中是没有元素值的。如何对数组的元素进行初始化呢?

三、数组初始化概述:

  *  java 中的数组必须先初始化,然后才能使用。

    *所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。

四、数组的初始化方式:

*动态初始化:初始化时只指定数组的长度,由系统为数组分配初始值。

**格式:数据类型 [ ] 数组名 = new 数据类型 [数组长度];(数组长度是必须要写的,否则会报错)

**数组长度其实就是数组中元素的个数。

举例:

    int [ ] arr = new int [3];

解释:定义了一个int类型的数组,这个数组中可以存放3个int 类型的值。

1、获取数组中的元素:

*通过      数组名 [ 索引];

**索引其实就是每个元素的编号,从0开始,最大索引是数组的长度-1. 

*静态初始化:初始化时指定每个元素的初始值,由系统决定数组的长度。

举例:

A:int [ ] a ;定义一个int类型的数组a变量

B:int a [ ] ;定义一个int类型的a数组变量

注意:推荐使用第一种

class ArrayDemo{

    public static void main (String [ ]args){

        //定义一个数组

        int [ ] a ;

        //可能尚未初始化变量a

        System.out.println(a);

        int [ ] arr = new int [ 3 ];

//左边:

//int:说明数组中的元素的数据类型是int类型

//[ ] :说明这是一个数组

//arr:是数组的名称

//右边:

//new:为数组分配内存空间

//int:说明数组中的元素的数据类型是int类型

//[ ]:说明这是一个数组

//3:数组长度,其实也就是数组中元素的个数

         System.out.println(arr);//[I@175078b  地址值。

//我要地址值没有意义啊,我就要数据值,怎么办呢?

//不用担心,java为你考虑到了

//其实数组中的每个元素都是有编号的。并且是从0开始。最大编号是数组的长度-1.

//用数组名和编号的配合就可以获取数组中的指定编号的元素。这个编号的专业叫法:索引

//通过数组名访问数据的格式:数组名 [ 索引];

        System.out.println(arr[ 0 ]);

         System.out.println(arr [ ] );

         System.out.println(arr [ ]);

    }

}

动态举例:

//把1~100的所有数,存放在数组中

package shuzu;

public class Dongtai {

    public static void main(String[] args) {

        Dongtai dongtai= new Dongtai();

        int [] b = dongtai.fun();

        for(int i:b){

            System.out.println(i);

        }

    }

    public int[] fun(){

        int a [] = new int [100];

        for (int i = 0;i<100;i++){

            a[i] = i + 1;

        }

        return a;

    }

}

各种数据类型  静态举例:

package shuzu;

public class Sz {

    public static void main(String[] args) throws InterruptedException {

        //定义一个int类型的数组

        int [] a ={5,6,7,9,5};

        //将数组a的值赋值给b

        int b = a[a.length-1];

        //将b的值输出在控制台

        System.out.println(b);

        //运用for循环,将数组元素遍历

        

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

        

        for(int i = 0;i <<span se-mark="1">a.length;i++){

            System.out.print(a[i]);

        }

        System.out.println();

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

    

        //运用while循环,将数组元素遍历

        int ss = 0;

        while (ss <<span se-mark="1">a.length){

            System.out.print(a[ss]);

            ss++;

        }

        System.out.println();

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

        

        

        //运用do--while循环,将数组元素遍历

        int sss = 0;

        do {

            System.out.print(a[sss]);

            sss++;

        } while (sss <<span se-mark="1">a.length );

        System.out.println();

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

        

        //增强for循环的应用

        for(int xx:a){

            System.out.println(xx);

        }

        System.out.println();

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

            

        

        

        //定义一个String类型的数组

        String [] s = {"1","12","123"};        

        //将数组s值赋值給mString

        String mString = s[1];

        //将mString的值输出在控制台

        System.out.println(mString);

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

        

        //运用for循环,将数组元素遍历

        for (int j = 0;j < s.length;j++){

            System.out.print(s[j] );

        }

        System.out.println();

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

        

        //增强for循环的应用

        for(String aa: s){

            System.out.println(aa);

        }

        System.out.println();

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

        

        

        

        

        //定义一个float类型的数组

        float [] f = {(float) 1.0,(float) 4.1,(float) 5.2};

        //将数组f值赋值給x

        float x = f[2];

        //将x的值输出在控制台

        System.out.println(x);

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

        

        //运用for循环,将数组元素遍历

        for (int aa = 0; aa < f.length; aa++) {

            System.out.print(f[aa]);

        }

        System.out.println();

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

        

        //增强for循环的应用

        for(float ff: f){

            System.out.println(ff);

        }

        System.out.println();

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

        

        

        

        

        //定义一个double类型的数组     

        double [] d = {7.0,8.0,9.0};

        //将数组d值赋值給w

        double w = d[2];

        //将w的值输出在控制台

        System.out.println(w);

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

        

        //运用for循环,将数组元素遍历

        for (int bb = 0; bb < d.length; bb++) {

            System.out.print(d[bb]);

        }

        System.out.println();

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

        

        //增强for循环的应用

        for(double dd:d){

            System.out.println(dd);

        }

        System.out.println();

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

        

        

        

        

        //定义一个char类型的数组

        char [] c = {'1','h','d'};

        //将数组c的值赋值给r

        char r = c[2];

        //将r的值输出在控制台

        System.out.println(r);

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

        

        //运用for循环,将数组元素遍历 

        for (int cc = 0; cc < c.length; cc++) {

            System.out.print(c[cc]);

        }

        System.out.println();

        //一个程序运行完后,两秒之后打印下一个程序

        new Thread().sleep(2000);

        

        //增强for循环的应用

        for(char cc:c){

            System.out.println(cc);

        }

        

    }

}

学生类的数组举例:

package xueshengshuzu;

public class First {

    private String name ;

    private String sex;

    private String hao;    

    public First(String name, String sex, String hao) {

        super();

        this.name = name;

        this.sex = sex;

        this.hao = hao;

    }

    public void setName(String name){

        this.name = name;    

    }

    public String getName(){

        return name;

        

    }

    public void setSex(String sex){

        this.sex= sex;    

    }

    public String getSex(){

        return sex;

        

    }

    public void setHao(String hao){

        this.hao = hao;    

    }

    public String gethao(){

        return hao;

        

    }

    public void study(){

        System.out.println("学习。。。就是吃的苦中苦,方为人上人");

    }

    public void surffing(){

        System.out.println("上网冲浪。。。自然是好啊,");

        System.out.println("但是最棒的放松方式就是睡觉睡到自然醒");    

    }

    public static void main (String[]args){

    First f[] =new First [2];

    First first1 =new First("故事太长"," 只有风"," 愿意听我讲。");

    First first2 =new First("回忆起过去,","就连呼吸","都是痛的。 ");

    f[0]=first1;

    f[1]=first2;

    First ff = f[0];

    String name = ff.getName();

    String sex = ff.getSex();

    String hao = ff.gethao();

    System.out.println(" "+name+" "+sex+" "+hao);

    ff.study();

    System.out.println("以为把故事当成笑话讲给旁人自己就不会难过");

    ff.surffing();

    System.out.println("别缠着往事不肯走,别赖着曾经不放手。");

    First fff = f[1];

    String na = fff.getName();

    String se = fff.getSex();

    String ha = fff.gethao();

    System.out.println(" "+na+" "+se+" "+ha);

    fff.study();

    System.out.println("人人都笑你活该孤独凄凉没人懂得你的情长。");

    fff.surffing();

    System.out.println("天上的星星就像人的命运,两颗星的轨迹");

    System.out.println("可能永远也无法接近,也可能靠近之后");

    System.out.println("就互相越离越远。");

    }

    

    }

  


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值