collections中的常用方法

public class CollectionsTest {

    public static void main(String[] args) {
List list = new ArrayList();
list.add(432);
list.add(23);
list.add(7);
list.add(234);
list.add(65);
list.add(78);
list.add(32);
list.add(54);
System.out.println("排序:" + sort(list)); //list2必须大于等于list的size,list的size始终指的是元素的多少和容量无关
List<Integer> list2 = new ArrayList<Integer>();
list2.add(1);
list2.add(1);
list2.add(1);
list2.add(1);
list2.add(1);
list2.add(1);
list2.add(1);
list2.add(1);
list2.add(1);
list2.add(1);
//true,浅copy
System.out.println("复制:" + copy(list2, list)); List<Integer> list3 = new ArrayList<Integer>();
list3.add(1);
System.out.println("所有元素都不同吗? " + disjoint(list, list3)); fill(list2,10);
System.out.println("全部替换成10:"+list2); System.out.println("含有几个10:"+frequency(list2, 10)); //必须是连续出现,有一个元素不同就是—1 ----lastIndexOfSubList(List<?> source, List<?> target)
System.out.println("该集合出现的下标:"+indexOfSubList(Arrays.asList(1,2,3,4), Arrays.asList(2,8))); //在指定列表的指定位置处交换元素 0 和 2下标 交换
List<Integer> list1 = Arrays.asList(1, 2, 3);
Collections.swap(list1, 0, 2);
System.out.println("1,2,3交换0和2:"+list1); //reverse(List<?> list) 反转list ,可指定一个comparator //replaceAll(List<T> list, T oldVal, T newVal)使用另一个值替换列表中出现的所有某一指定值。 //返回由指定对象的 n 个副本组成的不可变列表
List<Integer> list4 = Collections.nCopies(3, 5);
System.out.println("三个5:"+list4); //也可以指定自定义comparator,还有min()一样的
System.out.println(list1+"中最大值:"+Collections.max(list1));
} /**
* 排序
*
* @param list
* @return
*/
private static List<Integer> sort(List<Integer> list) {
Collections.sort(list, (a, b) -> b - a);
return list;
} /**
* copy将所有元素从一个列表复制到另一个列表。
*
* @param dest
* @param src
* @return
*/
private static boolean copy(List<Integer> dest, List<Integer> src) {
Collections.copy(dest, src);
System.out.println(dest.get(0));
System.out.println(dest.get(dest.size() - 1));
return dest.get(0) == src.get(0);
} /**
* 如果两个指定 collection 中没有相同的元素,则返回 true。
*
* @param list
* @param src
* @return
*/
private static boolean disjoint(List<Integer> list, List<Integer> src) {
return Collections.disjoint(list, src);
} /**使用指定元素替换指定列表中的所有元素。
* @param list
* @param replace
*/
private static void fill(List<Integer> list, Integer replace) {
Collections.fill(list, replace);
} /**
* 返回指定 collection 中等于指定对象的元素数。
* @param list2
* @param containNum
*/
private static int frequency(List<Integer> list2, int containNum) {
return Collections.frequency(list2, containNum);
} /**
* 返回指定源列表中第一次出现指定目标列表的起始位置;如果没有出现这样的列表,则返回 -1。
* @param source
* @param target
* @return
*/
private static int indexOfSubList(List<?> source, List<?> target) {
return Collections.indexOfSubList(source, target);
}
}

Collections中的常用方法的更多相关文章

  1. Java从入门到放弃18---Map集合/HashMap/LinkedHashMap/TreeMap/集合嵌套/Collections工具类常用方法

    Java从入门到放弃18—Map集合/HashMap/LinkedHashMap/TreeMap/集合嵌套/Collections工具类常用方法01 Map集合Map集合处理键值映射关系的数据为了方便 ...

  2. Java实战之02Hibernate-03Session中的常用方法

    九.Session中的常用方法 1.save方法 都是临时态————>持久态 2.persist方法 作用: 持久化临时态对象. 与save方法的区别: 开始了事务:persist和save没有 ...

  3. Python元类实践--自己定义一个和collections中一样的namedtuple

    大家可能很熟悉在collections模块中有一个很好用的扩展数据类型-namedtuple. 如果你还不知道这个类型,那么请翻看标准手册. 我利用元类轻松定义一个namedtuple. 先把代码贴上 ...

  4. javascript中数组常用方法总结

    原文:javascript中数组常用方法总结 在javascript的基础编程中,数组是我们最常遇到的,那么数组的一些常用方法也是我们必须要掌握的,下面我们总结一下数组中常用的方法. toString ...

  5. python3 开发面试题(collections中的Counter)6.7

    ''' 编写Python脚本,分析xx.log文件,按域名统计访问次数 xx.log文件内容如下: https://www.sogo.com/ale.html https://www.qq.com/3 ...

  6. python中os常用方法

    python中OS常用方法 Python的标准库中的os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问 ...

  7. Java中的常用方法

    Java中的常用方法 第一章 字符串 1.获取字符串的长度:length() 2.判断字符串的前缀或后缀与已知字符串是否相同    前缀 startsWith(String s).后缀 endsWit ...

  8. Java多线程中的常用方法

    本文将带你讲诉Java多线程中的常用方法   Java多线程中的常用方法有如下几个 start,run,sleep,wait,notify,notifyAll,join,isAlive,current ...

  9. JavaScript中Math常用方法

    title: JavaScript中Math常用方法 toc: false date: 2018-10-13 12:19:31 Math.E --2.718281828459045,算数常量e Mat ...

随机推荐

  1. egg-socket在egg中的使用

    WebSocket 的产生源于 Web 开发中日益增长的实时通信需求,对比基于 http 的轮询方式,它大大节省了网络带宽,同时也降低了服务器的性能消耗: socket.io 支持 websocket ...

  2. Visio图像应用

    图像插入: 直接搜索然后插入 CAD是工程绘图. CAD属性设置框 下面是图像编辑: 通过格式中的旋转进行调整 但是CAD格式的图没有格式 图片可以设置题注 图片层次的使用 CAD图片颜色的修改在 图 ...

  3. Spring||Interview

    1.依赖注入(DI)(IOC) 对象本身不负责对象的创建和维护,将控制权转交给外部的容器实现,降低程序的耦合度,只提供java方法让容器决定依赖关系,依赖关系的对象通过JavaBean属性或者构造函数 ...

  4. 用c++ 给易语言写支持库学习记录

    废话我就不对说 直接开始 易语言官方下载的易语言安装路径下 有一个SDK文件夹 我们点进入cpp文件夹里面提供是c++的SDK elib文件夹里就是sdk 我们新建一个win32项目 这里我用的是VS ...

  5. Python数据分析:手把手教你用Pandas生成可视化图表

    大家都知道,Matplotlib 是众多 Python 可视化包的鼻祖,也是Python最常用的标准可视化库,其功能非常强大,同时也非常复杂,想要搞明白并非易事.但自从Python进入3.0时代以后, ...

  6. linux 双Redis + keepalived 主从复制+宕机自主切换

    主要核心思想,如果master 和 salve 全部存活的情况,VIP就漂移到 master.读写都从master操作,如果master宕机,VIP就会漂移到salve,并将之前的salve切换为ma ...

  7. spring系列框架篇-承接各类型中小型项目-期待与您的长期合作!

    框架选型: 1.基本框架:springboot2.2+springcloud(Hoxton.M2)+nacos (所有公共模块全部使用 starter 方式依赖) 2.授权及权限:oauth2+jwt ...

  8. 洛谷P2858 奶牛零食 题解 区间DP入门题

    题目大意: 约翰经常给产奶量高的奶牛发特殊津贴,于是很快奶牛们拥有了大笔不知该怎么花的钱.为此,约翰购置了 \(N(1 \le N \le 2000)\) 份美味的零食来卖给奶牛们.每天约翰售出一份零 ...

  9. linux installer os的驱动更新

    installer os的驱动更新 linux系统可以简单的分为installer OS与运行时的OS,安装阶段识别不到硬件设备大概率因为installers OS版本较低,没有驱动来识别新的硬件,可 ...

  10. 小小知识点(十五)——origin pro 2018 安装和消除demo字样

    安装 1.安装过成中选择语言为中文或者英文,安装完成后可在注册表中切换语言. 2.安装过程中使用序列号 中文版:DF2W8-9089-7991320英文版:GF3S4-9089-7991320 3.安 ...