常用工具类——Collections集合框架
常用工具类——Collections集合框架
Collections 是 JDK
提供的一个工具类,提供了一系列静态方法,分类来复习!
1.排序操作
reverse(List list)
:反转顺序shuffle(List list)
: 洗牌,将顺序打乱sort(List list)
: 自然升序sort(List list, Comparator c)
:按照自定义的比较排序swap(List list, int i, int j)
:将 i 和 j 的位置元素交换
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionsTools {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
list.add("F");
System.out.println("初始顺序:" + list);
// 反转顺序
Collections.reverse(list);
System.out.println("反转后的顺序" + list);
// 洗牌
Collections.shuffle(list);
System.out.println("洗牌后的顺序" + list);
// 自然升序
Collections.sort(list);
System.out.println("自然升序后的顺序" + list);
// 交换
Collections.swap(list, 0, 1);
System.out.println("交换后的顺序" + list);
}
}
Result
初始顺序:[A, B, C, D, E, F]
反转后的顺序[F, E, D, C, B, A]
洗牌后的顺序[B, E, F, C, A, D]
自然升序后的顺序[A, B, C, D, E, F]
交换后的顺序[B, A, C, D, E, F]
2.查找操作
binarySearch(List list, Object key)
:二分查找法,前提是排序max(Collection coll)
:返回最大元素max(Collection coll, Comparator comp)
:根据自定义比较器,返回最大元素min(Collection coll)
:返回最小元素min(Collection coll, Comparator comp)
:根据自定义比较器,返回最小元素fill(List list, Object obj)
: 使用指定对象填充frequency(Collection c, Object o)
: 返回指定对象出现的次数
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionsTools {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("A");
list.add("A");
list.add("C");
list.add("D");
list.add("E");
list.add("F");
list.add("F");
list.add("F");
System.out.println("初始顺序:" + list);
// 二分查找
Collections.sort(list);
System.out.println(Collections.binarySearch(list, "C"));
// 最大值
System.out.println(Collections.max(list));
// 最小值
System.out.println(Collections.min(list));
// 出现的次数
System.out.println(Collections.frequency(list, "F"));
// 填充
Collections.fill(list, "Q");
System.out.println("填充后的List"+ list);
}
}
Result
初始顺序:[A, A, C, D, E, F, F, F]
2
F
A
3
填充后的List[Q, Q, Q, Q, Q, Q, Q, Q]
3.同步控制
HashMap
是线程不安全,Collections
工具类中提供了多个方法,这些方法会返回一个同步的对象,保证多线程中解决集合时的安全问题。
SynchronizedList synchronizedList = Collections.synchronizedList(list);
4.常用方法
addAll(Collection<? super T> c, T... elements)
:往集合中添加元素disjoint(Collection<?> c1, Collection<?> c2)
:判断两个集合是否没有交集CollectionUtils.isEmpty(List list)
:集合空CollectionUtils.isNotEmpty(List list)
:集合非空
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionsTools3 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
List<String> addlist = new ArrayList<>();
Collections.addAll(addlist, "A", "B", "C");
System.out.println("添加后的集合" + addlist);
System.out.println("是否没有交集:" + (Collections.disjoint(list, addlist) ? "是" : "否"));
}
}