java基础:数组

数组重要方法

一、填充数组:Arrays.fill()方法 

缺点:填充的数据单一。

用法1:接受2个参数

Arrays.fill( a1, value );

注:a1是一个数组变量,value是一个a1中元素数据类型的值,作用:填充a1数组中的每个元素都是value

例如:

[java] 

public class Study {  

  

    public static void main(String[] args) {  

        int[] a = new int[5];  

        Arrays.fill(a, 1);  

        System.out.println(Arrays.toString(a)); 

    }  

}  

输出结果为:

[java]  

[1, 1, 1, 1, 1]

 

用法2:接受4个参数

第一个参数指操作的数组,第二个和第三个指在该数组的某个区域插入第四个参数,第二个参数指起始元素下标(包含该下标),第三个参数指结束下标(不包含该下标),注意:java的数组下标从0开始

例如:

[java]  

public class Study {  

  

    public static void main(String[] args) {  

        int[] a = new int[5];  

        Arrays.fill(a, 1);  

        Arrays.fill(a, 1, 3, 2);  

       System.out.println(Arrays.toString(a));

    }  

}  

结果:

[java]  

 [1, 2, 2, 1, 1]

 

 

二、复制数组:clone()方法  

clone()方法,限制:全部复制,无法部分的复制。

[java]  

public class Study {  

  

    public static void main(String[] args) {  

        int[] a = new int[5];  

        int[] b;  

        Arrays.fill(a, 1);  

        b = a.clone();  

       System.out.println(Arrays.toString(b)); 

    }  

}  

结果:

[java]  

 [1, 1, 1, 1, 1]

 

三、比较数组:Arrays.equala()方法 

comparable接口:compareTo()方法 , 实现comparable接口的类有了自身的比较功能 

comparator接口:compare()方法和equals()方法 

一般只需实现compare()方法 用于编写自定义的比较方法 

例子:

定义Person类,对该类进行比较

[java]  

public class Person {  

    String firstname, lastname;  

    Boolean sex;  

    int age;  

  

    public Person(String firstname, String lastname, Boolean sex, Integer age) {  

        super();  

        this.firstname = firstname;  

        this.lastname = lastname;  

        this.sex = sex;  

        this.age = age;  

    }  

  

    public String getFirstname() {  

        return firstname;  

    }  

  

    public void setFirstname(String firstname) {  

        this.firstname = firstname;  

    }  

  

    public String getLastname() {  

        return lastname;  

    }  

  

    public void setLastname(String lastname) {  

        this.lastname = lastname;  

    }  

  

    public Boolean getSex() {  

        return sex;  

    }  

  

    public void setSex(Boolean sex) {  

        this.sex = sex;  

    }  

  

    public Integer getAge() {  

        return age;  

    }  

  

    public void setAge(Integer age) {  

        this.age = age;  

    }  

  

}

实现Comparator,定义自定义比较器

import java.util.Comparator;

public class PersonComparator implements Comparator<Person> {

@Override

public int compare(Person arg0, Person arg1) {

if (arg0.getAge() > arg1.getAge()) {

return -1;

}

return 1;

}

}

测试比较器

[java]  

public class Study {  

  

    public static void main(String[] args) {  

        Person[] p = {  

                 new Person("ouyang", "feng", Boolean.TRUE, 27),  

                 new Person("zhuang", "gw", Boolean.TRUE, 26),  

                 new Person("zhuang", "gw", Boolean.FALSE, 28),  

                 new Person("zhuang", "gw", Boolean.FALSE, 24)};  

        Arrays.sort(p, new PersonComparator());  

        for (Person person : p) {  

            System.out.println(person.getFirstname());  

            System.out.println(person.getLastname());  

            System.out.println(person.getAge());  

            System.out.println(person.getSex());  

            System.out.println();  

        }  

    }  

}

 

四、数组排序:Arrays.sort()方法 

在排序中已经提到了

五、查找数组:Arrays.binarySearch()方法 

缺点:数组必须已经过了排序,否则结果无法预料 

[java] 

public class Study {  

  

    public static void main(String[] args) {  

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

        Arrays.sort(a);  

        System.out.println(Arrays.binarySearch(a, 3));  

    }  

}  

六、显示数组数据 

 1)数组存放的是对象,如字符串:可以使用Arrays.asList方法将数组转换为List容器后显示。 

 2)数据是基本类型:可以使用for(int i:array) System.out.println(i); 显示 

 3)Arrays.toString()方法 

[java]  

public class Study {  

  

    public static void main(String[] args) {  

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

        System.out.println(Arrays.toString(a));  

        for (int i : a) {  

            System.out.println(i);  

        }  

    }  

}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liuguichenglove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值