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. leetcode-16-greedyAlgorithm

    455. Assign Cookies 解题思路: 先将两个数组按升序排序,然后从后往前遍历,当s[j] >= g[i]的时候,就把s[j]分给g[i],i,j都向前移动,count+1;否则向 ...

  2. 在Ubuntu中打开pycharm步骤:

    在pycharm的bin文件夹中打开终端,包含pycharm.sh文件的,输入“sh pycharm.sh",如下图所示: 创建工程和windows环境下相同. 结束关掉pycharm 终端 ...

  3. luogu1501 [国家集训队]Tree II

    lct裸题 #include <iostream> #include <cstdio> using namespace std; typedef long long ll; i ...

  4. luogu2564 [SCOI2009]生日礼物

    排序枚举左端点,则右端点必定不降 #include <algorithm> #include <iostream> #include <cstring> #incl ...

  5. 【POJ 2585】Window Pains 拓扑排序

    Description . . . and so on . . . Unfortunately, Boudreaux's computer is very unreliable and crashes ...

  6. 【LeetCode】Balanced Binary Tree(平衡二叉树)

    这道题是LeetCode里的第110道题. 题目要求: 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. ...

  7. Python文件处理、函数的基本应用

    可读可写: r+t:可读.可写 w+t:可写.可读with open('b.txt','w+t',encoding='utf-8') as f:    print(f.readable())    p ...

  8. [linux小技巧]批量移动文件

    for i in {1..23};do mv test$i/ ../;done

  9. java.net.ConnectException: Connection timed out: no further information

    ping IP 地址 检查是否连上 重启虚拟机 检查主机

  10. 【bzoj3751】[NOIP2014]解方程 数论

    题目描述 已知多项式方程: a0+a1*x+a2*x^2+...+an*x^n=0 求这个方程在[1,m]内的整数解(n和m均为正整数). 输入 第一行包含2个整数n.m,每两个整数之间用一个空格隔开 ...