在java之前的学习中我们也对数组有一定的接触
此处我主要想介绍一些数组中中的一些方法
1.equals()
其底层代码是:
public static boolean equals(int[] a, int[] a2) {
if (a==a2)
return true;
if (a==null || a2==null)
return false;
int length = a.length;
if (a2.length != length)
return false;
for (int i=0; i<length; i++)
if (a[i] != a2[i])
return false;
return true;
}
equals()除了在Object类中比较的是地址外,一般在其他类中都默认被重写
所以判断的是内容
copyOf() 使用场景是创建了第一个数组,第二个数组可以规定任意容量,并且将第一个数组中的值复制到第二个数组中
以下是举例:
public class ArrayscopyOf {
public static void main(String[] args) {
int [] a = {1,2,3,4,5};
int [] b = Arrays.copyOf(a,2*a.length);
System.out.println(Arrays.toString(b));
//直接将第一个数组中的元素复制到第二格新数组中,并且可以随意规定容量
fill() 方法用于数组的填充
public static void main(String[] args) {
/*
fill用于数组填充
*/
Arrays.fill(a,0);
System.out.println(Arrays.toString(a));
}
}
sort()排序方法
其中还涉及了部分排序
此处涉及到的知识点比较多
其中的comparable<>是重点,指的是String类型排序中存在多个属性,需要通过该接口确定使用哪个属性作为依据进行排序
import java.util.Arrays;
public class Arrayssortdemo {
public static void main(String[] args) {
/* int [] a = {2,9,5,7,3,0};
//Arrays.sort(a);
Arrays.sort(a,0,4);
//部分排序,不包含数组中的限制数字,此处就是从0到4中的最后一位---->左闭右开区间
System.out.println(Arrays.toString(a));
String [] b = {"z","g","d"};
Arrays.sort(b);
System.out.println(Arrays.toString(b));*/
Student student1 = new Student("jim1",101,"男1");
Student student2 = new Student("jim2",102,"男2");
Student student3 = new Student("jim3",103,"男3");
Student[] students = new Student[3];
students[1] = student2;
students[2] = student3;
students[0] = student1;
//使用arrays sort类排序,类需要实现comparable比较
//重写comparable(Object),返回一个int值
Arrays.sort(students);
System.out.println(Arrays.toString(students));
}
}
class Student implements Comparable<Student>{
private String name;//名字
private int id;//学号
private String sex;//性别
public Student(String name, int id, String sex) {
this.name = name;
this.id = id;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public int compareTo(Student o) {
//return this.id - o.id;//指定使用哪个属性排序
return this.name.compareTo(o.name);
//字符串根据底层编码排序比较大小
}
@Override
public String toString() {
return "名字:"+ name+'\t'+""+ id+'\t'+""+sex+'\t';
}
}
binaryASearch()是用来查询相应的数在数组中的位置
import java.util.Arrays;
public class binaryArrays {
public static void main(String[] args) {
int [] a = {1,2,3,4,5,6,7};
System.out.println(Arrays.binarySearch(a, 3));
//binarySearch是用来查询相应的数在数组中的位置的
System.out.println(Arrays.binarySearch(a, 2, 7, 6));
}
}