Java集合——Collections工具类

摘要:本文主要学习了Collections工具类的常用方法。

概述

Collections工具类主要用来操作集合类,比如List和Set。

常用操作

排序(sort方法)

使用Collections工具类里的sort()方法进行排序,必须满足下列任意一个条件:

第一种是List中的存储的元素实现Comparable接口,重写compareTo()方法。

第二种是在使用sort方法时,传入一个Comparator的实现类,重写compareTo()方法。

测试代码如下:

 List<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(5);
list.add(1);
System.out.println(list);
Collections.sort(list);
System.out.println(list);

运行结果如下:

 [3, 5, 1]
[1, 3, 5]

反转(reverse方法)

将集合里元素的顺序进行反转。

测试代码如下:

 List<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(5);
list.add(1);
System.out.println(list);
Collections.reverse(list);
System.out.println(list);

运行结果如下:

 [3, 5, 1]
[1, 5, 3]

混排(shuffle方法)

对集合里的元素进行随机排序。

测试代码如下:

 List<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(5);
list.add(1);
System.out.println(list);
Collections.shuffle(list);
System.out.println(list);

运行结果如下:

 [3, 5, 1]
[3, 1, 5]

最大(max方法)

查找集合中最大的一个元素。

测试代码如下:

 List<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(5);
list.add(1);
System.out.println(list);
Integer max = Collections.max(list);
System.out.println(max);

最小(min方法)

查找集合中最小的一个元素。

测试代码如下:

 List<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(5);
list.add(1);
System.out.println(list);
Integer min = Collections.min(list);
System.out.println(min);

查找(binarySearch方法)

查找方法只能调用顺序的集合,返回元素的索引。

测试代码如下:

 List<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(5);
list.add(1);
System.out.println(list);
Integer index = Collections.binarySearch(list, 5);
System.out.println(index);

替换(replaceAll方法)

替换指定元素为某元素,若要替换的值存在刚返回true,反之返回false。

 List<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(5);
list.add(1);
System.out.println(list);
Collections.replaceAll(list, 5, 7);
System.out.println(list);

操作容器

创建线程安全的List

 List<Integer> list = Collections.synchronizedList(new ArrayList<Integer>());

创建线程安全的Set

 Set<Integer> set = Collections.synchronizedSet(new HashSet<Integer>());

创建线程安全的Map

 Map<String, Integer> map = Collections.synchronizedMap(new HashMap<String, Integer>());

Java集合——Collections工具类的更多相关文章

  1. java 集合Collections 工具类:排序,查找替换。Set、List、Map 的of方法创建不可变集合

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

  2. Java 集合-Collections工具类

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

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

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

  4. Java 之 Collections 工具类

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

  5. Java集合----Collection工具类

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

  6. Java 集合的工具类Collections的常用方法

    Collections类 java.utils.Collections是集合工具类,用来对集合进行操作. Collections类的常用方法 这里介绍四个常用方法: addAll(Collection ...

  7. java集合框架——工具类

    一.概述 JAVA集合框架中有两个很重要的工具类,一个是Collections,另一个是Arrays.分别封装了对集合的操作方法和对数组的操作方法,这些操作方法使得程序员的开发更加高效. public ...

  8. Java 集合框架工具类

    Collections Arrays Collections 集合框架的工具类, 里面的方法都是静态的, 可以直接使用类名调用 常用方法 1. sort(List<T> list); // ...

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

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

随机推荐

  1. 使用Github第二节

    接着第一节我们注册完账号接下来我们要创建仓库 注:如果邮箱没收到邮件需要设置域名白名单! 1.设置QQ邮箱白名单 (1)打开QQ邮箱.点击[设置] (2)点击[反垃圾] (3)点击[设置域名白名单] ...

  2. LeetCode(173) Binary Search Tree Iterator

    题目 Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the ...

  3. Linux学习-循环执行的例行性工作排程

    循环执行的例行性工作排程则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的例行性工作,因此这个系统服务是默认启动的. 另外, 由于使用者自己也可以进行例行性工 ...

  4. oracle结构-内存结构与动态内存管理

    内存结构与动态内存管理 内存是影响数据库性能的重要因素. oracle8i使用静态内存管理,即,SGA内是预先在参数中配置好的,数据库启动时就按这些配置来进行内在分配,oracle10g引入了动态内存 ...

  5. Selenium WebDriver- 使用Frame中的HTML源码内容操作Frame

    #encoding=utf-8 import unittest import time from selenium import webdriver from selenium.webdriver i ...

  6. match_parent, wrap_content, 和 fill_parent 区别联系

    fill_parent   -1  The view should be as big as its parent (minus padding). This constant is deprecat ...

  7. google chrome & preferences & languages

    google chrome & preferences & languages language settings https://www.google.com/preferences ...

  8. 【Luogu】P3950部落冲突(树链剖分)

    题目链接 状态奇差无比,sbt都能错一遍. 不动笔光想没有想到怎么做,画图之后发现一个很明显的性质…… 那就是两个开战的部落,其中一个是另一个的父亲. 所以在儿子那里加个权值.查询的时候树链剖分查询链 ...

  9. 【CCF】地铁修建 改编Dijkstra

    [题意] 给定有n个点,m条边的无向图,没有平行边和自环,求从1到n的路径中,最长段的最小值(最短路不再是路径和,而是所有段中的最大值) [AC] #include<iostream> # ...

  10. Python基础教程总结(一)

    引言: 一直都听说Python很强大,以前只是浏览了一些博客,发现有点像数学建模时使用的Matlab,就没有深入去了解了.如今Python使用的地方越来越多,最近又在学习机器学习方面的知识,因此想系统 ...