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

Java学习笔记—对象的比较和集合工具类Collections

2017-09-16 08:34 597 查看

一、对象的比较

实现Comparable<T>接口并且实现里面的compareTo(T o)方法

二、集合工具类Collections

常用方法

修饰符和返回值方法声明功能描述
static voidreverse(List<?> list)对集合进行反转操作
static voidshuffle(List<?> list)对集合进行随机打乱操作
static <T extends Comparable<? super T>> voidsort(List<T> list)对实现了Comparable接口的对象的集合进行排序
static <T> List<T>synchronizedList(List<T> list)把集合变成同步的(线程安全的)
static <T> voidsort(List<T> list, Comparator<? super T> c)传入一个实现了Comparator接口的比较器,对集合进行排序
示例

public class TestCollections {

public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵六");
list.add("田七");
Collections.reverse(list);// 对集合进行反转操作
System.out.println(list);// 打印[田七, 赵六, 王五, 李四, 张三]
Collections.shuffle(list);// 对集合进行随机打乱操作
System.out.println(list);

List<String> list1 = new ArrayList<String>();
list1.add("zs");
list1.add("ls");
list1.add("ww");
list1.add("zl");
list1.add("tq");
Collections.sort(list1);// 对实现了Comparable接口的对象的集合进行排序
System.out.println(list1);// 打印[ls, tq, ww, zl, zs]

List<Emp> list2 = new ArrayList<Emp>();
list2.add(new Emp(5, 23));
list2.add(new Emp(1, 24));
list2.add(new Emp(4, 34));
list2.add(new Emp(1, 14));
Collections.sort(list2, new Comparator<Emp>() {
@Override
public int compare(Emp o1, Emp o2) {
int val = o1.getId() - o2.getId();
if (val == 0) {
val = o1.getAge() - o2.getAge();
}
return val;
}
});
System.out.println(list2);// 打印[Emp [id=1, age=14], Emp [id=1, age=24],
// Emp [id=4, age=34], Emp [id=5, age=23]]
}
}

class Emp {
private int id;
private int age;
public Emp(int id, int age) {
super();
this.id = id;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Emp [id=" + id + ", age=" + age + "]";
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java
相关文章推荐