Java对数组的支持

1. 实现数组排序

Java类库对数组排序的操作:java.util.Arrays.sort(arrayName); 

package Array;

/**
 * Author:weiwei
 * description:数组排序
 * Creat:2019/3/22
 **/
public class Testsort {
    public static void main(String[] args) {
        int [] intData = new int[]{1,2,3,4,5};
        char [] charData = new char[]{'a','b','c','d','e'};
        java.util.Arrays.sort(intData);
        java.util.Arrays.sort(charData);
        printArray(intData);
        printArray(charData);
    }
    public static void printArray(int [] temp){
        for(int i = 0;i<temp.length;i++){
            System.out.println(temp[i]);
        }
        System.out.println();
    }
    //方法重载
    public static void printArray(char [] temp){
        for(int i =0;i<temp.length;i++){
            System.out.println(temp[i]);
        }
        System.out.println();
    }
}

只要是基本数据类型的数组,sort方法都可以实现排序处理(升序),内部使用双轴快速排序

2. 实现数组拷贝 

数组拷贝:指的是将一个数组的部分内容用另一个数组的一部分内容来替换掉(必须是连续的)

方法(1)Java类库对数组拷贝的操作:System.array.copy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,拷贝长度);

package Array;


/**
 * Author:weiwei
 * description:数组拷贝
 * Creat:2019/3/22
 **/
public class Testcopy {
    public static void main(String[] args) {
        int [] dataA = new int []{1,2,3,4,5,6,7,8,9};
        int [] dataB = new int []{11,22,33,44,55,66,77,88,99};
        System.arraycopy(dataB,3,dataA,2,4);
        printArray(dataA);
    }
    public static void printArray(int[] temp){
        for(int i =0;i<temp.length;i++){
            System.out.println(temp[i]);
        }
        System.out.println();
    }
}

 运行结果:1,2,44,55,66,77,7,8,9

方法(2) 数组拷贝:java.util.Arrays.copyof(源数组名称,新数组长度);

package Array;

import java.util.Arrays;

/**
 * Author:weiwei
 * description:数组拷贝
 * Creat:2019/3/22
 **/
public class Testcopyof {
    public static void main(String[] args) {
        int [] original = new int[] {1,3,5,7,9};
        int [] result = Arrays.copyOf(original,10);
        for(int temp : result){
            System.out.println(temp);
        }
    }
}

 运行结果:1,3,5,7,9,0,0,0,0,0

自动填充0,是数组达到定义的长度,动态数组就用此方法来扩容

3. 对象数组

上面定义的数组都是基本数据类型的数组,对象数组往往是以引用数据类型为主定义的,例如类,接口

3.1 动态初始化

类名称 [] 对象数组名称 = new 类名称[长度];语法:类名称 [] 对象数组名称 = new 类名称[长度];

  • 对象数组的动态初始化 
package Array;

/**
 * Author:weiwei
 * description:对象数组动态初始化
 * Creat:2019/3/22
 **/

class Person{
    private String name;
    private int age;
    public Person(String name,int age){
        this.name=name;
        this.age=age;
    }
    public void getInfo(){
        System.out.println("姓名"+this.name+",年龄:"+this.age);
    }
}
public class TestObject1 {
    public static void main(String[] args) {
        Person[] per = new Person[3];//数组动态初始化,每个元素都是其对应数据类型的默认值
        per[0] = new Person("zhangsan",22);
        per[1] = new Person("lisi",23);
        per[2] = new Person("wangwu",18);
        for(int i = 0;i< per.length;i++){
            per[i].getInfo();
        }
    }
}

 3.2 静态初始化

package Array;

/**
 * Author:weiwei
 * description:静态数组初始化
 * Creat:2019/3/22
 **/
class Person{
    private String name;
    private int age;
    public Person(String name,int age){
        this.name=name;
        this.age=age;
    }
    public void getInfo(){
        System.out.println("姓名"+this.name+",年龄:"+this.age);
    }
}
public class TestObject2 {
    public static void main(String[] args) {
        Person[] per = new Person[]{
            new Person("zhangsan", 22),
            new Person("lisi", 23),
            new Person("wangwu", 18),
        };
        //对象数组静态数组初始化
        for (int i = 0; i < per.length; i++) {
            per[i].getInfo();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43224539/article/details/88740820