美文网首页
一维数组

一维数组

作者: Finlay_Li | 来源:发表于2019-03-30 10:52 被阅读0次
    • 什么是数组
      用于批量存储同一类数据的容器
      是引用数据类型之一,通过new创建数组,数组中的每个元素相当于该对象的成员变量

    • 作用
      可以存储任意类型的数据

    • 数组的创建

    1. 声明数组
      int[] scores;
    2. 给数组初始化
      scores = new int[]{1,2,3,4,5};

    解读:
    1) [ ] 当使用了[ ]那么该对象一定是数组
    int[]scores;
    定义一个名叫scores,int 数据类型的数组
    2)scores = new int[]{1,2,3,4,5};
    创建一个int类型的数组,长度是5,并同时给5个位置初始化值,然后5个位置进行赋值,最后=赋值给scores对象的引用

    1. 声明数组
      names =new String[5];

    创建一个String类型的数组,长度是5,把长度给names对象的引用。
    这个时候数组的初始化值是null,不同的基本数据类型有不同的默认值

    1. 给数组初始化
      names[0]="aaa"; names[3]="bbb";

    对names的第一个位置赋值 “aaa”
    对names的第四个位置赋值 “bbb”

    • 数组的初始化
    1. 静态初始化:数组的初始化(创建)操作和赋值操作同时进行
    2. 动态初始化:数组的初始化(创建)操作和赋值操作分开进行
    • 数组的规则
    1. 无论静态初始化还是动态初始化,必须指明长度。创建后长度固定不可变
    2. 数组每个元素的位置都具有索引值(下标)
      索引值从 0 开始—>数组的长度 — 1
      java中提供数组获取长度的属性: length
    • 示例
    基本数据类型的默认值
    byte short int ---> 0
    long ---> 0L
    float ---> 0.0F
    double ---> 0.0D
    char ---> '\u0000'
    boolean  --->  false
            /*
            //byte在数组中元素的默认值
            byte[] bs = new byte[5];
            for(int i = 0; i < bs.length; i++){
                System.out.println(bs[i]);
            }
            //float在数组中元素的默认值
            float[] fs = new float[3];
            for(int i = 0; i < fs.length; i++){
                System.out.println(fs[i]);
            }
            //char在数组中元素的默认值
            char[] chs = new char[5];
            for(int i = 0; i < chs.length; i++){
                System.out.println(chs[i]);
            }
        
            //boolean在数组中元素的默认值
            boolean[] boos = new boolean[3];
            for(int i = 0; i < boos.length; i++){
                System.out.println(boos[i]);
            }
      
    */
            
    引用数据类型的默认值 --->  null
        |--类(class)
        |--接口(interface)
        |--数组([])
    class ArrayTest {
        public static void main(String[] args) {
            
            //1 声明一个Person类型的数组
            Person[] persons = new Person[5];
            
            //2 对persons数组赋值——>存对象
            persons[0] = new Person();
            persons[1] = new Person("张三", 18);
            persons[2] = new Person("李四", 20);
            persons[3] = new Person("王五", 22);
            persons[4] = new Person("赵六", 35);
            //3遍历数组
            for(int i = 0; i < persons.length; i++){
                //输出对象的地址值
                System.out.println(persons[i].say()); 
            
            }
        }
    }
    
    //java bean
    class Person{
        private String name;
        private int age;
        public Person(){}
        public Person(String name, int age){
            this.name = name;
            this.age = age;
        }
            public void setName(String name){
            this.name = name;
        }
        public String getName(){
            return name;
        }
        public void setAge(int age){
            this.age = age;
        }
        public int getAge(){
            return age;
        }
        public String say(){
            return "姓名:" + name + " 年龄:" + age;
        }
    }
    
    • 数组常见的异常:
    1. java.lang.ArrayIndexOutOfBoundsException : 数组下标越界异常
            Person[] persons = new Person[5];//{new Person(), null, null, null, null}
            persons[6] = new Person();
    
    1. java.lang.NullPointerException : 空指针异常
    Person p = new Person();
    p = null;
    System.out.println(p.say());         //null.say();
    
    • 数组的遍历
    1. 普通 for 循环遍历数组
    //基本数据类型:
    for(int i = 0; i < scores.length; i++){
            int s1 = scores[i];
            System.out.println(s1);
    }
     //引用数据类型:
    for(int i = 0; i < persons.length; i++){
            Person p = persons[i];
            System.out.println(p.say(在Person类中定义的返回属性方法));
    }
    
    1. 增强 for 循环
      1 格式:
      for(被遍历数组中元素的数据类型 变量名 : 被遍历的数组){}
      2 示例:
    for(int score : scores){
            System.out.println(score);
    }
    for(Person p : persons){
            System.out.println(p.say());
    }
    
    1. 使用工具类
    Arrays.asList( "a", "b", "d" ).forEach( e -> System.out.println( e ) );
    

    相关文章

      网友评论

          本文标题:一维数组

          本文链接:https://www.haomeiwen.com/subject/cekjbqtx.html