【Java集合】Collections工具类
文章目录
- 01 Collections工具类介绍
- 02 排序操作
- 03 查找、替换
01 Collections工具类介绍
- Collections 是一个操作 Set、List 和 Map 等集合的工具类;
- Collections 中提供了一系列静态方法对集合元素进行排序、查询和修改操作;
02 排序操作
均为static方法:
- reverse (List):反转 List 中元素的排序;
- shuffle (List) : 对 List 集合元素进行随机排序;
- sort (List) : 根据元素的自然顺序对指定的 List 集合元素按升序排序;
- sort (List,Comparator) :根据指定的 Comparator 产生的顺序对 List 集合元素进行排序;
swap (List ,int,int) :将指定 List 集合中的 i 处元素 和 j 处元素进行交换;
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) {
//创建ArrayList集合,用于测试
List list = new ArrayList();
list.add("Jack");
list.add("Tom");
list.add("Smith");
list.add("Rose");
//reverse(List):反转List集合中的元素顺序
Collections.reverse(list);
System.out.println(list);//[Rose, Smith, Tom, Jack]
//shuffle(List):对List集合进行随机排序
Collections.shuffle(list);
System.out.println(list);//[Rose, Tom, Smith, Jack]
//sort(List):根据元素的自然顺序对指定的List集合元素按升序排序
Collections.sort(list);
System.out.println(list);//[Jack, Rose, Smith, Tom]
//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(list);//[Tom, Jack, Rose, Smith]
//swap(List,i,j): 将指定List集合中的i处元素和j处元素进行交换
Collections.swap(list,1,2);
System.out.println(list);//[Tom, Rose, Jack, Smith]
}
}
03 查找、替换
- 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) {
//创建ArrayList集合,用于测试
List list = new ArrayList();
list.add("Jack");
list.add("Tom");
list.add("Smith");
list.add("Rose");
// Object max ( Collection ) :根据元素的自然顺序,返回给定集合中的最大元素;
System.out.println("自然顺序最大值 = "+ Collections.max(list));//Tom
// Object max ( Collection , Comparator ) :根据 Comparator 指定的顺序,返回给定集合中的最大元素;
//返回长度最大的元素:
Collections.max(list, new Comparator() {
@Override
public int compare(Object o1 , Object o2){
return ((String)o1).length()-((String)o2).length();
}
});
// Object min ( Collection )
// Object min ( Collection , Comparator)
// int frequency ( Collection , Object ) : 返回指定集合中指定元素的出现次数;
System.out.println(Collections.frequency(list,"Rose"));//1
list.add("Rose");
System.out.println(Collections.frequency(list,"Rose"));//2
// void copy ( List dest , List src ) : 将 src 中的内容复制到 dest 中;
//为了完成一个完整拷贝,需要先给dest赋值,大小和list.size()一样
ArrayList dest = new ArrayList();
for(int i=0;i<list.size();i++){
dest.add(null);
}
Collections.copy(dest,list);
System.out.println(dest);//[Jack, Tom, Smith, Rose, Rose]
// boolean replaceAll ( List list , Object oldVal , Object newVal ) : 使用新值替换List对象的所有旧值;
//如果list中有tom,就替换为汤姆
Collections.replaceAll(list,"Tom","汤姆");
System.out.println(list);//[Jack, 汤姆, Smith, Rose, Rose]
}
}
还没有评论,来说两句吧...