数组重要方法
一、填充数组: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);
}
}
}