跟王老师学集合(十):操作集合的工具类:Collections

操作集合的工具类:Collections

主讲人:王少华  QQ群号:483773664

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

一、排序操作

(一)、方法

Collections提供了如下几个方法用于对List集合元素进行排序

  • static void reverse(List list):反转指定List集合中元素的顺序
  • static void shuffle(List list):对List集合元素进行随机排序
  • static void sort(List list):根据元素的自然顺序对指定的List集合的元素按升序进行排序
  • static void sort(List list,Comperator c):根据指定的Comparator产生的顺序对List集合的元素进行排序
  • static void swap(List list int i,int j):将指定的List集合中i处元素和j处元素进行交换
  • static void rotate(List list,int distance):将指定集合中i处元素和list.length-1-i处的元素进行交换。

(二)实例


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

public class SortTest

{

    public static void main(String[] args)

    {

        ArrayList nums = new ArrayList();

        nums.add(2);

        nums.add(-5);

        nums.add(3);

        nums.add(0);

        //输出:[2, -5, 3, 0]

        System.out.println(nums);

        //将List集合元素的次序反转

        Collections.reverse(nums);

        //输出:[0, 3, -5, 2]

        System.out.println(nums);

        //将List集合元素的按自然顺序排序

        Collections.sort(nums);

        //输出:[-5, 0, 2, 3]

        System.out.println(nums);

        //将List集合元素的按随机顺序排序

        Collections.shuffle(nums);

        //每次输出的次序不固定

        System.out.println(nums);

    }

}

二、查找和搜索操作

(一)、方法

1、static int binarySearch(List list,Object key):使用二分搜索法,以获得指定对象在List中的索引,前提是集合元素已是有序状态。

2、static Object max(Collection coll):根据元素的自然排序,返回给定集合中的最大元素。

3、static Object max(Collection coll,Comparator comp):根据指定Comparator产生的顺序,返回给定集合中的最大元素。

4、static Object min(Collection coll):根据元素的自然排序,返回给定集合中的最小元素。

5、static Object min(Collection coll,Comparator comp):根据指定Comparator产生的顺序,返回给定集合中的最小元素。

6、static void fill(List list,Object obj):使用指定元素obj替换List里的所有元素。

7、static int frequency(Collection Object o):返回指定集合中等于指定对象的元素数量。

8、static int indexOfSubList(List source,List target):返回子list对象在母list中第一次出现的索引,如果没有则返回-1。

9、static int lastIndexOfSubList(List source,List target):返回子list对象在母list中最后一次出现的索引,如果没有则返回-1。

10、static boolean replaceAll(List list,Object old,Object new):使用一个新值替换List中所有的旧值。

(二)实例


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

public class SearchTest

{

    public static void main(String[] args)

    {

        ArrayList nums = new ArrayList();

        nums.add(2);

        nums.add(-5);

        nums.add(3);

        nums.add(0);

        //输出:[2, -5, 3, 0]

        System.out.println(nums);

        //输出最大元素,将输出3

        System.out.println(Collections.max(nums));

        //输出最小元素,将输出-5

        System.out.println(Collections.min(nums));

        //将nums中的0使用1来代替

        Collections.replaceAll(nums , 0 , 1);

        //输出:[2, -5, 3, 1]

        System.out.println(nums);

        //判断-5 在List集合中出现的次数,返回1

        System.out.p

跟王老师学集合(十):操作集合的工具类:Collections

时间: 2024-08-04 15:28:57

跟王老师学集合(十):操作集合的工具类:Collections的相关文章

跟王老师学反射(二):Java类的加载、连接和初始化

跟王老师学反射(二):Java类的加载.连接和初始化 主讲教师:王少华   QQ群号:483773664 学习内容: 了解类的加载.连接和初始化 一.类的生命周期 当我们编写一个java的源文件后,经过编译会生成一个后缀名为class的文件,这种文件叫做字节码文件,只有这种字节码文件才能够在java虚拟机中运行,java类的生命周期就是指一个class文件从加载到卸载的全过程.一个java类的完整的生命周期会经历加载.连接.初始化.使用.和卸载五个阶段,当然也有在加载或者连接之后没有被初始化就直

跟王老师学反射(三):Class类:获得Class对象

跟王老师学反射(三):Class类:获得Class对象 主讲教师:王少华   QQ群号:483773664 学习内容 掌握获得Class对象的三种方式 理解这三种方式的区别 一.获得Class对象 前面我们已经领略了反射的魅力了,我们知道,利用反射的关键是要获得"图纸"Class对象,那么怎么获得这个Class对象呢!!! 每个类被加载之后,系统会为该类生成一个对应的Class对象,通过该Class对象就可以访问JVM中的这个类.Java程序获得Class对象有如下三种方式: (一)调

跟王老师学反射(四):Class类:从Class类中获取信息

跟王老师学反射(四)Class类:从Class类中获取信息 主讲教师:王少华   QQ群号:483773664 学习内容 获得class类中的信息 根据我们以前学过的一个Java类有以下几部组成,如下代码所示 一.访问Class对应的类所包含的构造方法 (一)public Constructor<T> getConstructor(Class<?>... parameterTypes) 返回此Class对象所表示的类的指定public构造方法. parameterTypes参数是按

跟王老师学枚举(三):枚举类API

跟王老师学枚举(三):枚举API 主讲教师:王少华   QQ群号:483773664 一.枚举类API Java中声明的枚举类,均是java.lang.Enum类的孩子,它继承了Enum类的所有方法.常用方法: name():返回此枚举常量的名称 ordinal():返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零 valueof(Class enumClass, String name):返回带指定名称的指定枚举类型的枚举常量 valueof(String name):返回带指定

跟王老师学枚举(四):枚举类练习

跟王老师学枚举(四):枚举的练习 主讲教师:王少华   QQ群号:483773664 一.需求 请编写一个关于星期几的枚举WeekDay 要求: 枚举值:Mon,Tue,Wed,Thu,Fri,Sat,Sun 该枚举要有一个方法,调用该方法返回中文格式的星期(星期一...) 二.参考代码 package chapter11_04;   public enum WeekDay {     Mon{         @Override         public String getChinaWe

跟王老师学MySQL:集合函数

跟王老师学MySQL:集合函数 主讲教师:王少华   QQ群号:483773664 学习内容 COUNT().SUM().AVG().MAX()和MIN()四个集合函数的使用 集合函数包括COUNT().SUM().AVG().MAX()和MIN(). 一.count() (一)简介 COUNT()函数用来统计记录的条数. (二)举例 使用count()函数统计employee表的记录数 1 SELECT  COUNT(*)  FROM  employee ; 二.SUM()函数 (一)简介 S

跟王老师学集合(十一)java中Comparator的用法

Java中Comparator的用法 主讲人:王少华  QQ群号:483773664 在java中,如果要对集合对象或数组对象进行排序,需要实现Comparator接口以达到我们想要的目标. 接下来我们模拟下在集合对象中对日期属性进行排序 一.实体类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package chapter07_11; public class Person {     private int a

跟王老师学反射(十):静态代理模式

跟王老师学反射(十):静态代理模式 主讲教师:王少华   QQ群号:483773664 学习内容 理解代理机制 掌握静态代理 一.代理模式的概念 代理模式就是指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理. 代理模式一般涉及到三个角色 抽象角色:声明真实对象和代理对象的共同接口 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能替代真实对象相同的接口以便在任何时刻都能替代真实对

Java从零开始学二十四点(集合工具类Collections)

一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二.Collections类的常用方法及常量 No. 方法 类型 描述 1 public static final List EMPTY_LIST 常量 返回一个空的List集合 2 public static final Set EMPTY_SET 常量 返回空的Set集合 3 public sta