集合工具类
两个实用的辅助工具类:COllections和Arrays
Collections工具提供了一些对Collections集合常用的静态方法,例如:查找,排序、复制、以及填充等操作。Collections工具类中常用的静态方法如下所示:
使用Collections工具类为集合进行排序时,集合中德元素必须是Comparable可比较的。Java提供一个Comparable接口,该接口中只有一个compareTo()比较方法。如果一个类实现COmparable接口,则该类的对象就可以整体进行比较排序,这种方法被称为类的“自然排序”,compareTo()方法被称为“自然比较方法”。
代码示例:
Person类
//声明Person类,实现Comparable接口
public class Person implements Comparable<Person> {
private String name;
private int age;
private String address;
public Person(){
}
public Person(String name, int age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", address=" + address + "]";
}
//重写Comparable接口中德comparTo()方法
public int compareTo(Person p){
if(this.age < p.age){
return -1;
}else if(this.age == p.age){
return 0;
}else{
return 1;
}
}
CollectionsDemo 类
public class CollectionsDemo {
public static void main(String[] args) {
//创建ArrayList集合
ArrayList<Person> list = new ArrayList<>();
//添加Person对象
Person p = new Person("张三",13,"北京");
list.add(p);
list.add(new Person("李四",8,"上海"));
list.add(new Person("王五",28,"济南"));
list.add(new Person("马六",83,"澹台"));
list.add(new Person("大周",84,"青岛"));
System.out.println("-----------排序前");
for(Person p1 :list){
System.out.println(p1);
}
System.out.println("-----------排序后");
//排序
Collections.sort(list);
for(Person p1 :list){
System.out.println(p1);
}
System.out.println(Collections.max(list));
System.out.println(Collections.min(list));
}
}
Arrays:
代码示例:
public static void main(String[] args) {
//创建一个person数组
Person[] p = new Person[5];
//实例化对象数组中的元素
p[0] = new Person("张1", 143, "北京");
p[1] = new Person("张2", 123, "北京");
p[2] = new Person("张3", 132, "北京");
p[3] = new Person("张4", 1352, "北京");
p[4] = new Person("张5", 113, "北京");
for(Person e : p){
System.out.println(e);
}
System.out.println("--------------");
//使用Arrays工具类进行排序
Arrays. sort(p);
System.out.println("排序后:");
for(Person e : p){
System.out.println(e);
}
System.out.println("----------");
//将数组中的内容转换成字符串
System.out.println(Arrays.toString((p)));
System.out.println("----------");
//数组拷贝
Person[] copy = Arrays.copyOfRange(p,1,4);
System.out.println("拷贝后");
for(Person e : copy){
System.out.println(e);
}
}