各自努力,最高处见!加油!
集合(七)—— 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对象的所有旧值
示例代码
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Collections_ {
public static void main(String[] args) {
List list=new ArrayList();
list.add("tom");
list.add("smith");
list.add("king");
list.add("sb");
System.out.println(list);//[tom, smith, king, sb]
Collections.reverse(list);//反转List中元素的顺序反转List中元素的顺序
System.out.println(list);//[sb, king, smith, tom]
Collections.shuffle(list);//对list的元素进行随机排序
System.out.println(list);//[sb, smith, tom, king],[smith, king, tom, sb]两次执行结果
Collections.sort(list);//根据元素的自然顺序对指定List集合元素按升序排序
System.out.println(list);//[king, sb, smith, tom]
Collections.sort(list, new Comparator() {//自己创建比较器来排序
@Override
public int compare(Object o, Object t1) {
return ((String)o).length()-((String)t1).length();
}
});
System.out.println(list);//[sb, tom, king, smith]
Collections.swap(list,1,2);//指定下标的两个元素交换顺序
System.out.println(list);//[sb, king, tom, smith]
System.out.println("=====================================");
System.out.println("自然顺序最大元素:"+Collections.max(list));
System.out.println("长度最大元素:"+Collections.max(list, new Comparator() {
@Override
public int compare(Object o, Object t1) {
return ((String)o).length()-((String)t1).length();
}
}));
System.out.println("tom出现的次数:"+Collections.frequency(list,"tom"));
list.add("tom");
System.out.println(list);
System.out.println("tom出现的次数:"+Collections.frequency(list,"tom"));
ArrayList dest=new ArrayList();
for (int i = 0; i < list.size(); i++) {//创建一个跟list大小相同的集合
dest.add("");
}
Collections.copy(dest,list);
System.out.println(dest);//[sb, king, tom, smith, tom]
Collections.replaceAll(list,"tom","汤姆");//[sb, king, 汤姆, smith, 汤姆]
System.out.println(list);
}
}