——- android培训、java培训、期待与您交流! ———-
生活中很多东西如果你会了,会给我们带来很大的方便,如手机的发明让我们联系的更紧密,高铁技术的发展使我们出行更便捷安全,集合工具就是这样让人爽快。我热爱我的热爱,并将继续坚持我的热爱,我会是那匹黑马。
Collections:集合框架的工具类。
一、Collections和Collection有什么区别?
Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。
它有两个常用的子接口,
List:对元素都有定义索引。有序的。可以重复元素。
Set:不可以重复元素。无序。
二、Collections是集合框架中的一个工具类。该类中的方法都是静态的,提供的方法中有可以对list集合进行排序,二分查找等方法。
通常常用的集合都是线程不安全的。因为要提高效率。如果多线程操作这些集合时,可以通过该工具类中的同步方法,将线程不安全的集合,转换成安全的。
三、程序解读
/*
题目:已知User类,该类有name(String类型)和age(int类型)两个属性,
请编写代码实现给ArrayList<User>排序,要求按照User对象的age的倒序排序。
*/
import java.util.*;
class UserDemo
{
public static void main(String[] args)
{
Comparator<User> comparator = new Comparator<User>() //定义内部类 Comparator
{
public int compare(User u1,User u2)
{
if(u1.getAge()!=u2.getAge())
return u2.getAge()-u1.getAge();
else
return u1.getName().compareTo(u2.getName());
}
};
ArrayList al = new ArrayList();
al.add(new User("Jim",22));
al.add(new User("Lily",20));
al.add(new User("Lilei",19));
al.add(new User("张三",21));
System.out.println("排序前:");
for (int i=0;i<al.size() ;i++ )
{
User user = (User)al.get(i);
String name=user.getName();
int age = user.getAge();
System.out.println("name:"+name+" age:"+age);
}
Collections.sort(al,comparator); //调用内部类comparator 方法,进行排序。
Iterator it = al.iterator();
System.out.println("排序后:");
while (it.hasNext())
{
User u = (User)it.next();
String name = u.getName();
int age = u.getAge();
System.out.println("name:"+name+" age:"+age);
}
}
}
class User
{
private String name;
private int age;
User(String name,int age)
{
this.name=name;
this.age=age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}