您的位置:首页 > 编程语言 > Java开发

java常用类库之数组操作类

2015-11-05 17:01 405 查看
Arrays定义了很多与数组有关的基本操作

public static boolean equals (int[ ] a,int [ ] b)

public static void fill(int[] a,int val)

public static void sort(int[ ] a)

public static int binarySearch(int[ ] a,int key)

public static String toString (int[ ] a)

public class ArraysDemo {
public static void main(String[] args) {
int i1[] = { 1, 2, 3, 4, 5, 6 }; // 两个数组内容一样
int i2[] = { 6, 5, 4, 3, 2, 1 }; // 两个数组内容一样
Arrays.sort(i2);
System.out.println(Arrays.equals(i1, i2));
Arrays.fill(i2, 3); // 将数组2的内容全部填充为3
System.out.println(Arrays.toString(i2));// 输出内容
}

}


这里再说一下java中的比较器Comparable,通过实现这个接口并重写其中的compareTo方法可以实现对象之间的比较

class Student implements Comparable<Student> { // 实现比较器,并指定泛型
private int stuno;
private String name;
private int age;
private float score;

public Student(int stuno, String name, int age, float score) {
this.stuno = stuno;
this.name = name;
this.age = age;
this.score = score;
}

public int compareTo(Student stu) {
if (this.score > stu.score) {
return -1;
} else if (this.score < stu.score) {
return 1;
} else {
if (this.age > stu.age) {
return 1;
} else if (this.age < stu.age) {
return -1;
} else {
return 0;
}
}
}

public String toString() { // 覆写toString()
return "学生编号:" + this.stuno + ";姓名:" + this.name + ";年龄:" + this.age
+ ";成绩:" + this.score;
}

}
public class CompareableDemo01 {
public static void main(String[] args) {
Student stu[] = { new Student(1, "张三", 21, 99.1f),
new Student(2, "李四", 20, 99.1f),
new Student(3, "王五", 21, 89.1f),
new Student(4, "赵六", 21, 80.1f),
new Student(5, "孙七", 19, 80.1f) };
System.out.println("============== 数组声明之前 ===============");
print(stu);
System.out.println("============== 数组排序之后 ===============");
Arrays.sort(stu);// 排序
print(stu);
}

public static void print(Student stu[]) {
for (int i = 0; i < stu.length; i++) {
System.out.println(stu[i]);
}
}
}


对象的克隆、

通过实现cloneable可以使得类的实例化对象具有被克隆能力

class Person implements Cloneable {// 表示此类的对象可以被克隆
private String name;

public Person(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String toString() {
return "姓名:" + this.getName();
}

public Object clone() throws CloneNotSupportedException {
return super.clone();
}

}

public class CloneDemo {

public static void main(String[] args) throws CloneNotSupportedException {
Person per1 = new Person("张三");
Person per2 = (Person)per1.clone() ;
per2.setName("李四") ;
System.out.println(per1) ;
System.out.println(per2) ;
}

}


此时两个对象堆内存空间互不影响。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: