本次博客带领大家了解集合中的Collections工具类。
Collections工具类介绍
- Collections是一个操作Set、List和Map 等集合的工具类。
- Collections中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作。
排序操作:(均为static方法)
- reverse(List):反转List中元素的顺序。
- shuffle(List):对List集合元素进行随机排序。
- sort(List):根据元素的自然顺序对指定List集合元素按升序排序。
- sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序。
- swap(List,int,int):将指定list集合中的i处元素和j处元素进行交换。
查找、替换操作:
-
Object max(Collection):根据元素的自然排序,返回给定集合中的最大元素。
-
Object max(Collection,Comparator):根据Comparator指定的顺序,返回给定集合中的最大元素。
-
Object min(Collection)
-
Object min(Collection,Comparator)
-
int frequency(Collection,Object):返回指定集合中指定元素的出现次数。
-
void copy(List dest,List src):将src中的内容复制到dest中。
-
boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换List对象的所有旧值。
public class Collections_ {
public static void main(String[] args) {
//创建ArrayList集合,用于测试
List list = new ArrayList();
list.add("tom");
list.add("smith");
list.add("king");
list.add("milan");
// 1. reverse(List):反转List中元素的顺序。
Collections.reverse(list);
System.out.println("list="+list);
// 2. shuffle(List):对List集合元素进行随机排序。
Collections.shuffle(list);
System.out.println("list="+list);
// 3. sort(List):根据元素的自然顺序对指定List集合元素按升序排序。
Collections.sort(list);
System.out.println("自然排序后");
System.out.println("list="+list);
// 4. sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序。
//我们希望按照 字符串的长度大小排序
Collections.sort(list, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
return ((String)o1).length() - ((String)o2).length();
}
});
System.out.println("按照字符串长度排序");
System.out.println("list="+list);
// 5. swap(List,int,int):将指定list集合中的i处元素和j处元素进行交换。
Collections.swap(list,0,3);
System.out.println("交换后的情况");
System.out.println("list="+list);
// 1. Object max(Collection):根据元素的自然排序,返回给定集合中的最大元素。
System.out.println("自然顺序最大元素="+Collections.max(list));
// 2. Object max(Collection,Comparator):根据Comparator指定的顺序,返回给定集合中的最大元素。
//返回长度最大的元素。
Object maxobject = Collections.max(list, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
return ((String)o1).length() - ((String)o2).length();
}
});
System.out.println("长度最大的元素"+maxobject);
// 3. Object min(Collection)
// 4. Object min(Collection,Comparator)
// 上面的两个方法,参考max即可
// 5. int frequency(Collection,Object):返回指定集合中指定元素的出现次数。
System.out.println("tom出现的次数="+Collections.frequency(list,"tom"));
// 6. void copy(List dest,List src):将src中的内容复制到dest中。
ArrayList dest = new ArrayList();
//为了完成一个完整拷贝,我们需要先给dest赋值,大小和list.size()一样。
for (int i = 0;i<list.size();i++){
dest.add("");
}
//拷贝
Collections.copy(dest,list);
System.out.println("拷贝后的内容="+dest);
// 7. boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换List对象的所有旧值。
Collections.replaceAll(list,"tom","汤姆");
System.out.println("list替换后="+list);
}
}