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. PC端网页特效

    元素偏移量offset系列 offset翻译过来就是偏移量,我们使用offset系列相关属性可以动态的得到该元素的位置(偏移),大小等 获得元素距离带有定位父元素的位置 获得元素自身的大小(宽度高度) ...

  2. tensorflow中models的安装

    tensorflow中models的安装参看网址: 1. Tensorflow Object Detection API Windows Install Guide http://www.insigh ...

  3. 微软软件开发技术二十年回顾-Windows DNA篇

    五. Windows DNA篇 微软的Windows分布式因特网应用体系(简称Windows DNA)是微软创建新一代高适应性商业解 决方案的框架,它使公司能够充分地挖掘数字神经系统的优点.Windo ...

  4. [luogu1908]逆序对(upper_bound)

    对于给定的一段正整数序列,逆序对就是序列中ai>aj且i<j的有序对 用upper_bound法求逆序对,Code很棒 据说有用树状数组和线段树写逆序对的,这里用upper_bound水一 ...

  5. 【Jenkins】pipeline-hello-world项目

    1.New Item 2.Pipeline Definition 3.Build Error 4.Solution 5.Console Output

  6. java环境所遇问题

    在javac能运行通过并且生成了.class文件但是java文件在运行时通不过出现上面图片情况,试了一上午发现我的和别人好像不一样,下面展示我的情况, 之前用户变量那里新建了一个classpath,不 ...

  7. 9.python入门

    借鉴:https://www.cnblogs.com/wupeiqi/articles/5433925.html 一.HelloWorld print("HelloWorld") ...

  8. 软RAID和硬RAID的区别

    要实现RAID可以分为硬件实现和软件实现两种.所谓硬RAID就是指通过硬件实现,同理软件实现就作为软RAID.   硬RAID 就是用专门的RAID控制器将硬盘和电脑连接起来,RAID控制器负责将所有 ...

  9. 20191024-3 互评Alpha阶段作品——胜利点组

    此作业要求参见 https://edu.cnblogs.com/campus/nenu/2019fall/homework/9860 基于NABCD评论作品,及改进建议 1.根据(不限于)NABCD评 ...

  10. java实现单向循环链表

    链表图解 带头结点的链表: 不带头结点的链表: 区别 带头结点的链表容易代码实现 不带头结点的容易实现循环链表和双向链表 代码的实现 (增减 删除) 节点实现: public class node { ...