Saul's blog Saul's blog
首页
后端
分布式
前端
更多
分类
标签
归档
友情链接
关于
GitHub (opens new window)

Saul.J.Wu

立身之本,不在高低。
首页
后端
分布式
前端
更多
分类
标签
归档
友情链接
关于
GitHub (opens new window)
  • Java入门基础

  • Java核心基础

    • 多线程

    • Java常用类

    • 枚举类与注解

    • Java集合

      • Java集合框架概述
      • Collection
      • List
      • ArrayList
      • LinkedList
      • Vector
      • Set
      • HashSet
      • LinkedHashSet
      • TreeSet
      • Map
      • HashMap
      • LinkedHashMap
      • TreeMap
      • Hashtable
      • Properties
      • Collections工具类
        • 前言
        • 概述
        • 排序操作
        • 查找、替换
        • 同步控制
        • Enumeration
        • 面试题
    • 数据结构与算法

    • 泛型

    • IO流

    • 网络编程

    • 反射

    • 函数式编程

  • 设计模式

  • Web开发

  • SpringBoot

  • 微服务

  • Elasticsearch

  • 运维

  • 后端
  • Java核心基础
  • Java集合
SaulJWu
2020-12-27

Collections工具类

# 前言

Java 集合可分为Collection 和Map 两种体系:

  • Collection接口:单列数据,定义了存取一组对象的方法的集合
    • List:元素有序、可重复的集合
      • ArrayList、LinkedList、Vector
    • Set:元素无序、不可重复的集合
      • HashSet、LinkedHashSet、TreeSet
  • Map接口:双列数据,保存具有映射关系“key-value对”的集合,也称为键值对。
    • HashMap、LinkedHashMap、TreeMap、Hashtable、Properties

我们已经学完了所有集合的体系,接下来学习Collections工具类。

# 概述

  • Collections 是一个操作Set、List和Map 等集合的工具类。
  • Collections 中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法。

# 排序操作

下面是Collections 排序操作的常用方法(均为static方法):

  • reverse(List):反转List 中元素的顺序
  • shuffle(List):对List集合元素进行随机排序
  • sort(List):根据元素的自然顺序对指定List 集合元素按升序排序
  • sort(List,Comparator):根据指定的Comparator 产生的顺序对List 集合元素进行排序
  • swap(List,int,int):将指定list 集合中的i处元素和j 处元素进行交换操作数组的

# 查找、替换

  • Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素
  • Object max(Collection,Comparator):根据Comparator 指定的顺序,返回给定集合中的最大元素
  • Object min(Collection):根据元素的自然顺序,返回给定集合中的最小元素
  • Object min(Collection,Comparator):根据Comparator 指定的顺序,返回给定集合中的最小元素
  • int frequency(Collection,Object):返回指定集合中指定元素的出现次数
  • void copy(List dest,List src):将src中的内容复制到dest中,
    • dest的size要大于等于src的size,否则报IndexOutOfBoundsException。
    • 如果要dest的size要跟src的size一样,可以使用List dest = Arrays.asList(new Object[src.size]);,然后再拷贝。
  • boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换List 对象的所有旧值

# 同步控制

Collections常用方法:同步控制:

  • Collections 类中提供了多个synchronizedXxx() 方法,该方法可使将指定集合包装成线程同步的集合,从而可以解决多线程并发访问集合时的线程安全问题。

image-20201227020538307

image-20201227021414052

image-20201227021454317

# Enumeration

Enumeration 接口是Iterator迭代器的“古老版本”

image-20201227020604935

Enumeration stringEnum = new StringTokenizer("a-b*c-d-e-g", "-");
while(stringEnum.hasMoreElements()){
    Object obj= stringEnum.nextElement();
    System.out.println(obj);
}
1
2
3
4
5

# 面试题

Collection和Collections的区别?

一个是存储单列数据的接口,另一个是操作Set、List和Map 等集合的工具类。

帮我改善此页面 (opens new window)
#Collections#同步#线程安全#synchronized
上次更新: 2020/12/27, 06:16:30
Properties
数据结构简述

← Properties 数据结构简述→

最近更新
01
zabbix学习笔记二
02-28
02
zabbix学习笔记一
02-10
03
Linux访问不了github
12-08
更多文章>
Theme by Vdoing | Copyright © 2020-2022 Saul.J.Wu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式