15、数组

数组:最简单的数据结构;

数组:相同数据类型的有序集合,

特点:

1、长度确定,一旦被创建大小不可改变;

2、元素类型相同;

3、数组类型可以时任意类型,包括基本数据类型和引用数据类型;

4、数组变量属于引用数据类型,数组也属于对象;存放在堆中;

声明:

1、type[] arr_name

2、type arr_name[]

默认初始化值int为0;

声明数组并赋值:

String [] strArr = new String[]{"1","2","3","4","5"};

 

数组初始化:

1、静态初始化

2、动态初始化

3、默认初始化

public class shuzu {
    public static void main(String[] args) {
        int[] nums;//声明一个数组
        nums=new int[10];//创建,开辟空间
        //给数组赋值
        nums[0]=1;
        nums[1]=2;
        nums[2]=3;
        nums[3]=4;
        nums[4]=5;
        nums[5]=6;
        nums[6]=7;
        nums[7]=8;
        nums[8]=9;
        nums[9]=10;
        for (int i = 0; i < 9; i++) {
            System.out.println(nums[i]);

        }
        //求数组的和
        int sum=0;
        for (int i = 0; i < nums.length; i++) {
            sum=sum+nums[i];

        }
        System.out.println("总和:"+sum);
    }
}

声明数组创建并赋值:

String [] strArr = new String[]{"1","2","3","4","5"};

ArrayIndexOutOfBoundsException:数组下标越界异常;

 

foreach 循环

for(类型 变量名:集合) {
    语句块;
}
public class foreachtest {
    public static void main(String[] args) {
        int[] arr=new int[]{1,2,3,4,5,6,7,8};
        //省略了数组的下标
        for (int i:arr) {
            System.out.println(i);
        }

    }
}

 

反转数组

//定义反转数组方法,形参为数组
    public static int[] reverse(int[] arr){
        //定义方法内部数组,长度使用实参的长度
        int[] result = new int[arr.length];
        for (int i = 0,j=arr.length - 1; i < arr.length ; i++,j--) {
            //反转数组
            result[i] = arr[j];
        }
        return result;
    }
}

数组倒置

 

import java.util.Arrays;

public class arraytest3 {
    public static void main(String[] args) {
        //定义数组
        int[] arr=new int[]{1,2,3,4,5,6,7,8,9,};
        //使用Arrags类方法输出数组内容
        System.out.println(Arrays.toString(arr));
        //调用数组倒置方法
        trun(arr);
        //使用Arrags类方法输出数组内容
        System.out.println(Arrays.toString(arr));
    }
    public static void trun(int[] arr){
        //循环次数为数组长度的1/2
        for (int i = 0; i < arr.length/2; i++) {
            //定义临时变量
            int tmp=0;
            //将数组的第一个值赋值给tmp
            tmp = arr[i];
            //将数组的最后一个,赋值给第一个
            arr[i] = arr[arr.length-i-1];
            //tmp中存放的值,赋值给数组的最后一个
            arr[arr.length-i-1] = tmp;
        }
    }
}

 数组三种初始化方式

public class Array1 {
    public static void main(String[] args) {
        int[] arr1=null;//声明数组,int[]为对象,赋值为null
        arr1=new int[10];//给数组分配空间,在堆中分配空间
        //给数组赋值, 动态初始化
        for (int i = 0; i < arr1.length; i++) {
            arr1[i]=i+1;
        }
        System.out.println("arr1"+Arrays.toString(arr1));
        //默认初始化,指定长度
        int[] arr2=new int[10];
        System.out.println("arr2"+Arrays.toString(arr2));

        //静态初始化
        int[] arr3={1,2,3,4,5,6,7,8,9};
        System.out.println("arr3"+Arrays.toString(arr3));

        System.out.println("######################");
        //person数组,赋值给数组元素的值,都是对象的地址
        Person[] p1=new Person[]{new Person(10,"liwang"),
                                new Person(11,"daliwang"),
                                new Person(12,"liaoliwang"),};
        //打印数组内容
        for (Person person:p1
             ) {
            System.out.println("id:"+person.getId()+",name:"+person.getName());
        }
        System.out.println("#########################");
        //重写tostring方法打印数组内容
        for (Person person:p1
        ) {
            System.out.println(person);
        }
        
    }
}

//person类
public class Person {
    private int id;
    private String name;

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }

    //构造器
    public Person(int id, String name) {
        this.id = id;
        this.name = name;
    }
    //get
    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;
    }
}

 

posted @ 2022-07-09 21:58  颓废且努力奋斗的人  阅读(32)  评论(0)    收藏  举报