java 集合Collections 工具类:排序,查找替换。Set、List、Map 的of方法创建不可变集合
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方法创建
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方法创建不可变集合的更多相关文章
- Java集合——Collections工具类
Java集合——Collections工具类 摘要:本文主要学习了Collections工具类的常用方法. 概述 Collections工具类主要用来操作集合类,比如List和Set. 常用操作 排序 ...
- Java中的集合Collections工具类(六)
操作集合的工具类Collections Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了将集 ...
- Java 之 Collections 工具类
一.Collections 概述 java.utils.Collections 是集合工具类,用来对集合进行操作. 二.常用方法 public static <T> boolean add ...
- Java 集合-Collections工具类
2017-11-05 23:41:53 Collections类 Collections类:Collections类是针对集合进行操作的工具类,都是静态方法. 常用方法: public static ...
- JAVA基础补漏--Collections工具类排序
Collections在对自定义对象进行排序时,自定义类需要对compareTo()函数进行重写. public class Student implements Comparable<Stud ...
- 集合框架-工具类-Collections-逆序替换
1 package cn.itcast.p2.toolclass.collections.demo; 2 3 import java.util.ArrayList; 4 import java.uti ...
- 线程高级应用-心得8-java5线程并发库中同步集合Collections工具类的应用及案例分析
1. HashSet与HashMap的联系与区别? 区别:前者是单列后者是双列,就是hashmap有键有值,hashset只有键: 联系:HashSet的底层就是HashMap,可以参考HashSe ...
- thinking in java之Collections工具类的使用
代码摘自<thinking in java>4td 此实例非常好的总结了Collections的一些常见方法的使用. package countainers; import java.ut ...
- Java:集合,Collections工具类用法
Collections工具类提供了大量针对Collection/Map的操作,总体可分为四类,都为静态(static)方法: 1. 排序操作(主要针对List接口相关) reverse(List li ...
随机推荐
- nacos的简单使用
1.根据自身情况下载稳定版本:https://github.com/alibaba/nacos/releases2.安装:zip包 cmd运行: 8848端口cmd startup.cmd3.登录名密 ...
- 贪心/构造/DP 杂题选做Ⅲ
颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的 ...
- LOJ 2353 & 洛谷 P4027 [NOI2007]货币兑换(CDQ 分治维护斜率优化)
题目传送门 纪念一下第一道(?)自己 yy 出来的 NOI 题. 考虑 dp,\(dp[i]\) 表示到第 \(i\) 天最多有多少钱. 那么有 \(dp[i]=\max\{\max\limits_{ ...
- 如何使用csapp文件
深入理解操作系统中有个csapp.h的头文件 以下来介绍下如何使用它: 该头文件下载地址为http://download.csdn.net/detail/tzasd89812/4206284 在Ubu ...
- excel-合并多个Excel文件--VBA合并当前目录下所有Excel工作簿中的所有工作表
在网上找EXCEL多文件合并的方法,思路: 一.Linux 或者window+cmder,直接用命令行cat合并EXCEL文件,但是,需要安装辅助东西才能直接处理(也许也不可以,但是,可以用文件格式转 ...
- 简易kmeans-c++版本
typedef double dtype; 主要接口: void Kmeans(const vector<vector<dtype> > &d,int k,string ...
- typora 图床配置方法
学习计算机的同学,在日常学习中难免会记笔记,写文档.相信大家记笔记大部分使用的都是 Markdown 吧,如果到现在还没接触,那我强烈建议你去学习一下,大概几分钟就可以搞定它. 注:下文用到的所有软件 ...
- Flink 实践教程-进阶(2):复杂格式数据抽取
作者:腾讯云流计算 Oceanus 团队 流计算 Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发.无缝连接.亚 ...
- k8s之ansible安装
项目地址:https://github.com/easzlab/kubeasz #:先配置harbor #:利用脚本安装docker root@k8s-harbor1:~# vim docker_in ...
- gitlab之数据备份恢复
备份#备份的时候,先通知相关人员服务要听 ,停止两个服务,并影响访问 root@ubuntu:/opt/web1# gitlab-ctl stop unicorn ok: down: unicorn: ...