解析Collections工具类重要功能

打印 上一主题 下一主题

主题 961|帖子 961|积分 2883

Collections 是 JDK 提供的一个工具类,位于 java.util 包下,提供了一系列的静态方法,方便我们对聚集进行各种利用,算是聚集框架的一个大管家。
大致看一下方法名和参数就能知道这个方法是干嘛的:

排序利用


  • reverse(List list):反转顺序
  • shuffle(List list):洗牌,将顺序打乱
  • sort(List list):自然升序
  • sort(List list, Comparator c):按照自定义的比力器排序
  • swap(List list, int i, int j):将 i 和 j 位置的元素交换位置
来看例子:
  1. List<String> list = new ArrayList<>();
  2. list.add("seven1");
  3. list.add("seven2");
  4. list.add("seven3");
  5. list.add("seven4");
  6. list.add("seven5");
  7. System.out.println("原始顺序:" + list);
  8. // 反转
  9. Collections.reverse(list);
  10. System.out.println("反转后:" + list);
  11. // 洗牌
  12. Collections.shuffle(list);
  13. System.out.println("洗牌后:" + list);
  14. // 自然升序
  15. Collections.sort(list);
  16. System.out.println("自然升序后:" + list);
  17. // 交换
  18. Collections.swap(list, 2,4);
  19. System.out.println("交换后:" + list);
复制代码
输出后:
  1. 原始顺序:[seven1, seven2, seven3, seven4, seven5]
  2. 反转后:[seven5, seven4, seven3, seven2, seven1]
  3. 洗牌后:[seven5, seven4, seven1, seven3, seven2]
  4. 自然升序后:[seven1, seven2, seven3, seven4, seven5]
  5. 交换后:[seven1, seven2, seven5, seven4, seven3]
复制代码
查找利用


  • binarySearch(List list, Object key):二分查找法,前提是 List 已经排序过了
  • max(Collection coll):返回最大元素
  • max(Collection coll, Comparator comp):根据自定义比力器,返回最大元素
  • min(Collection coll):返回最小元素
  • min(Collection coll, Comparator comp):根据自定义比力器,返回最小元素
  • frequency(Collection c, Object o):返回指定对象出现的次数
来看例子:
  1. System.out.println("最大元素:" + Collections.max(list));
  2. System.out.println("最小元素:" + Collections.min(list));
  3. System.out.println("出现的次数:" + Collections.frequency(list, "seven1"));
  4. // 没有排序直接调用二分查找,结果是不确定的
  5. System.out.println("排序前的二分查找结果:" + Collections.binarySearch(list, "seven2"));
  6. Collections.sort(list);
  7. // 排序后,查找结果和预期一致
  8. System.out.println("排序后的二分查找结果:" + Collections.binarySearch(list, "seven2"));
复制代码
输出后:
  1. 最大元素:seven6
  2. 最小元素:seven2
  3. 出现的次数:0
  4. 排序前的二分查找结果:-1
  5. 排序后的二分查找结果:0
  6. 填充后的结果:[seven6, seven6, seven6, seven6, seven6]
复制代码
填充聚集

<ul>fill(List list, Object obj):利用指定对象填充
addAll(Collection

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大号在练葵花宝典

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表