Collections 工具类

Java 提供1个操作 Set List Map 等集合的工具类 Collections ,该工具类里提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了将集合对象设置为不可变、对集合对象实现同步控制等方法。

用法:直接调用Collections.静态方法(<集合对象>)

Collections排序操作

  • void reverse(List list): 反转指定 ist 集合中元素的顺序
  • void shuffie(List list): 对List集合元素进行随机排序 (shuffie方法模拟了"洗牌"动作)
  • void sort(List list): 据元素的自然顺序对指定list集合的元素按升序进行排序。
  • void sort(List list, Comparator c): 根据指定 Comparator 产生的顺序对 List 集合元素进行排序
  • void swap(List list, int i, int j): 将指定 List 集合中的i处元素和j处元素进行交换。
  • void rotate(List list , int distance): distance为正数时,将 list 集合的后 distance 个元素"整体",移到前面:当 distance 为负数时,将 list 集合的前 distance 个元素"整体"移到后面 该方法不会改变集合的长度。
    public static void main(String[] args) {
List list = new ArrayList();
list.add(3);
list.add(1);
list.add(7);
list.add(5);
// list.sort(((o, t1) -> (int)t1 - (int)o));
// System.out.println(list);
Collections.reverse(list);
System.out.println(list);
Collections.sort(list);
System.out.println(list);
}

查找替换操作:

  • int binarySearch(List list, Object key): 使用二分搜索法搜索指定的 List集合,以获得指定对象在List集合中的索引。如果要使该方法可以正常工作,则必须保list中的元素己经处于有序状态。
  • Object max(Collection coll): 根据元素的自然顺序,返回给定集合中的最大元素。
  • Object max(Col1ection coll, Comparator comp): Comparator 定的顺序,返回给定集合中的最大元素
  • Object min(Col1ection coll) 根据元素的自然顺序,返回给定集合中的最小元素
  • Object min(Col1ection coll, Comparator comp): 根据 Comparator 定的顺序,返回给定集合中的最小值
  • void fill(List list, Object obj): 使用指定元素 obj 替换指定 List 集合中的所有元素
  • int frequer(Collection c, Object o): 返回指定集合中指定元素的出现次数
  • int indexOfSubList(List source, List target) 返回子List对象在父 List对象中第一次出现的位置索, 如果父List中没有没有出现这样的子List那么返回-1
  • int lastIndexOfSubList(List source, List target): 返回子List对象在父List对象中最后一次出现位置索引 ;如果List中没有出现这样的子List ,则返回 -1
  • boolean replaceAll(List list, Object oldVal, Object newVal) 使用 个新值newVal替换 List 对象的所有旧值oldVal
        List list = new ArrayList();
list.add(3);
list.add(1);
list.add(7);
list.add(5);
Collections.sort(list);
Collections.replaceAll(list,7,8);
System.out.println(list); //[1, 3, 5, 8]

其他操作

  • void addAll(list,"zz","ff","aa","bb","cc"); 向集合中添加若干元素
  • void synchronizedList(list); 把不是线程安全的集合转换为线程安全的

java9新增的不可变集合:Set、List、Map 的of方法创建

Java9新增了一个of方法来创建不可变集合:
        List list = List.of("Java", "Php", "Python", "Golang", "cpp");
System.out.println(list);
Set set = Set.of("Java", "Php", "Python", "Golang", "cpp");
System.out.println(set);
Map map = Map.of("语文",80,"数学","98","政治","89");
System.out.println(map);
Map map1 = Map.ofEntries(
Map.entry("语文",80),
Map.entry("数学",98)
);
System.out.println(map1);
map1.put("政治",98);//UnsupportedOperationException
 

//1、向集合中添加若干元素
List<String> list = new ArrayList<>();
Collections.addAll(list,"zz","ff","aa","bb","cc");
System.out.println(list);

//3、Collections.synchronizedXXX(xxx)把不是线程安全的集合转换为线程安全的
List<String> synchronizedList = Collections.synchronizedList(list);
System.out.println(synchronizedList);

//1、向集合中添加若干元素
List<String> list = new ArrayList<>();
Collections.addAll(list,"zz","ff","aa","bb","cc");
System.out.println(list);

//2、对List排序,在JDK7之前排序
Collections.sort(list);
System.out.println(list);

//2.1排序可以指定排序方法
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});
System.out.println(list);
//3、Collections.synchronizedXXX(xxx)把不是线程安全的集合转换为线程安全的
List<String> synchronizedList = Collections.synchronizedList(list);
System.out.println(synchronizedList);

java 集合Collections 工具类:排序,查找替换。Set、List、Map 的of方法创建不可变集合的更多相关文章

  1. Java集合——Collections工具类

    Java集合——Collections工具类 摘要:本文主要学习了Collections工具类的常用方法. 概述 Collections工具类主要用来操作集合类,比如List和Set. 常用操作 排序 ...

  2. Java中的集合Collections工具类(六)

    操作集合的工具类Collections Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了将集 ...

  3. Java 之 Collections 工具类

    一.Collections 概述 java.utils.Collections 是集合工具类,用来对集合进行操作. 二.常用方法 public static <T> boolean add ...

  4. Java 集合-Collections工具类

    2017-11-05 23:41:53 Collections类 Collections类:Collections类是针对集合进行操作的工具类,都是静态方法. 常用方法: public static ...

  5. JAVA基础补漏--Collections工具类排序

    Collections在对自定义对象进行排序时,自定义类需要对compareTo()函数进行重写. public class Student implements Comparable<Stud ...

  6. 集合框架-工具类-Collections-逆序替换

    1 package cn.itcast.p2.toolclass.collections.demo; 2 3 import java.util.ArrayList; 4 import java.uti ...

  7. 线程高级应用-心得8-java5线程并发库中同步集合Collections工具类的应用及案例分析

    1.  HashSet与HashMap的联系与区别? 区别:前者是单列后者是双列,就是hashmap有键有值,hashset只有键: 联系:HashSet的底层就是HashMap,可以参考HashSe ...

  8. thinking in java之Collections工具类的使用

    代码摘自<thinking in java>4td 此实例非常好的总结了Collections的一些常见方法的使用. package countainers; import java.ut ...

  9. Java:集合,Collections工具类用法

    Collections工具类提供了大量针对Collection/Map的操作,总体可分为四类,都为静态(static)方法: 1. 排序操作(主要针对List接口相关) reverse(List li ...

随机推荐

  1. nacos的简单使用

    1.根据自身情况下载稳定版本:https://github.com/alibaba/nacos/releases2.安装:zip包 cmd运行: 8848端口cmd startup.cmd3.登录名密 ...

  2. 贪心/构造/DP 杂题选做Ⅲ

    颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的 ...

  3. LOJ 2353 & 洛谷 P4027 [NOI2007]货币兑换(CDQ 分治维护斜率优化)

    题目传送门 纪念一下第一道(?)自己 yy 出来的 NOI 题. 考虑 dp,\(dp[i]\) 表示到第 \(i\) 天最多有多少钱. 那么有 \(dp[i]=\max\{\max\limits_{ ...

  4. 如何使用csapp文件

    深入理解操作系统中有个csapp.h的头文件 以下来介绍下如何使用它: 该头文件下载地址为http://download.csdn.net/detail/tzasd89812/4206284 在Ubu ...

  5. excel-合并多个Excel文件--VBA合并当前目录下所有Excel工作簿中的所有工作表

    在网上找EXCEL多文件合并的方法,思路: 一.Linux 或者window+cmder,直接用命令行cat合并EXCEL文件,但是,需要安装辅助东西才能直接处理(也许也不可以,但是,可以用文件格式转 ...

  6. 简易kmeans-c++版本

    typedef double dtype; 主要接口: void Kmeans(const vector<vector<dtype> > &d,int k,string ...

  7. typora 图床配置方法

    学习计算机的同学,在日常学习中难免会记笔记,写文档.相信大家记笔记大部分使用的都是 Markdown 吧,如果到现在还没接触,那我强烈建议你去学习一下,大概几分钟就可以搞定它. 注:下文用到的所有软件 ...

  8. Flink 实践教程-进阶(2):复杂格式数据抽取

    作者:腾讯云流计算 Oceanus 团队 流计算 Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发.无缝连接.亚 ...

  9. k8s之ansible安装

    项目地址:https://github.com/easzlab/kubeasz #:先配置harbor #:利用脚本安装docker root@k8s-harbor1:~# vim docker_in ...

  10. gitlab之数据备份恢复

    备份#备份的时候,先通知相关人员服务要听 ,停止两个服务,并影响访问 root@ubuntu:/opt/web1# gitlab-ctl stop unicorn ok: down: unicorn: ...