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. 纵我不往,知识不来--学习Java第一周心得

    暑假第一周,也是开始学习java的第一周. 本周的主要时间花在了小学期的任务上,但也草草开始了java的学习.首先安装好了所需要的软件,然后在网上下载了一份<Java基础笔记>,看了前五章 ...

  2. Android studio相关设置及实现存在于工程目录中的视频播放

    一:相关设置 1:主题设置 File-->Settings-->Appearance &Behavior-->Appearance-->THeme 2:Java源码的颜 ...

  3. HBase 分裂(split)

    1. 为什么split 最初一个Table 只有一个region(因此只能存放在一个region server上).随着数据的不断写入,HRegion越来越大,当到达一定程度后分裂为两个,通过负载均衡 ...

  4. mac如何查看已连接wifi的密码

    可以通道mac自带的“钥匙串访问”功能查看.选择需要查询的wifi名称,右击选择“将密码拷贝到剪贴板”,输入管理员密码后,密码就拷贝好了. 找个地方粘贴即可看到密码

  5. Java之String类常用API

    目录 Java之String类常用API char chatAt(int index) int length() char[] toCharArray() String(char value[]) S ...

  6. 大数据hadoop集群部署(一)

     环境系统配置  JAVA虚拟机的安装

  7. linux-head、tail、sort、uniq、pstree、ps

    1.head 默认查看文件前10行 head -7 /etc/yum.conf -n num -n7代表查看文件前7行 2.tail 默认查看文件的后10行 tail -7 /etc/yum.conf ...

  8. FacadePattern(外观模式)-----Java/.Net

    外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口.这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性

  9. Elasticsearch 节点磁盘使用率过高,导致ES集群索引无副本

    目录 一.问题 二.问题的原因 三.问题解决的办法 1. 扩大磁盘 2. 删除部分历史索引 3. 更改es设置 四.扩展 一.问题 最近在查看线上的 es,发现最近2天的索引没有副本,集群的状态也是为 ...

  10. linux Nginx-1.10.2 安装部署教程

    一.下载Nginx以及依赖组件[root@localhost src]# wget http://nginx.org/download/nginx-1.10.2.tar.gz [root@localh ...