java Collections类 详解

简介: java 集合篇章——Collections类常用方法讲解及演示。

目录

一、前言

二、Collections类简介

三、Collections类常用方法演示

       1.static void reverse(List list) :

               Δ代码演示 :

       2.static void shuffle(List list) :

               Δ代码演示 :

       3.static void sort(List list) :

               Δ代码演示 :

       4.static void sort(List list, Comparator c) :

               Δ代码演示 :

       5.static void swap(List list, int i, int j) :

               Δ代码演示 :

       6.static T max(Collection coll) :

               Δ代码演示 :

       7.static T min(Collection coll) :

               Δ代码演示 :

       8.static int frequency(Collection c, Object o) :

               Δ代码演示 :

       9.static void copy(List dest, List src) :

               Δ代码演示 :

       10.static boolean replaceAll(List list, T oldVal, T newVal) :

               Δ代码演示 :

四、完结撒❀


一、前言

       大家好,本篇博文是对java集合篇章之Collections类的内容分享

      注意 : ①代码中的注释也很重要;不要眼高手低,自己跟着敲一遍代码才有收获;点击文章的侧边栏目录或者文章开头的目录可以进行跳转。良工不示人以朴,所有文章都会适时补充完善。大家如果有问题都可以在评论区进行交流或者私信up。感谢阅读!

二、Collections类简介

       Collections类是java提供的一个操作List,Set和Map等集合的工具类。Collections类中提供了一系列操作集合的静态方法,使用这些方法可以实现对集合元素的排序、查询、修改等操作

       Collections类位于java.base模块,java.util包下,如下图所示 :

image.png

               再来看一下Collections类的类图,如下 :

 

三、Collections类常用方法演示

       1.static void reverse(List<?> list) :

               该方法可以对当前List集合中的元素进行反转,颠倒集合中元素的顺序。

              Δ代码演示 :

               up以Collections_Demo类为演示类,代码如下 :

packagecsdn.knowledge.api_tools.gather.collections;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.List;
/*** @author : Cyan_RA9* @version : 21.0*/publicclassCollections_Demo {
publicstaticvoidmain(String[] args) {
//演示 : Collections类常用方法Listlist=newArrayList();
list.add(141);
list.add(233);
list.add(666);
list.add(211);
list.add(11);
list.add(985);
list.add(24);
list.add(5);
System.out.println("当前集合 = "+list);
//1.static void reverse(List<?> list) : 反转List集合中元素的顺序Collections.reverse(list);
System.out.println("反转后的集合 = "+list);
    }
}

image.gif

               运行结果 :

image.png

       2.static void shuffle(List<?> list) :

               该方法可以对当前List集合进行“洗牌”,对List集合元素进行随机排序,且每次“洗牌”都是随机的。

              Δ代码演示 :

               仍然以Collections_Demo类为演示类,代码如下 :

packagecsdn.knowledge.api_tools.gather.collections;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.List;
publicclassCollections_Demo {
publicstaticvoidmain(String[] args) {
//演示 : Collections类常用方法Listlist=newArrayList();
list.add("Cyan");
list.add("RA9");
list.add("CSDN YYDS");
list.add("Ice");
list.add("Bob");
list.add("Kyrie");
list.add("Irving");
System.out.println("当前集合 = "+list);
//2.static void shuffle(List<?> list) : “洗牌”Collections.shuffle(list);
System.out.println("洗牌后的集合 = "+list);
Collections.shuffle(list);
System.out.println("洗牌后的集合 = "+list);
Collections.shuffle(list);
System.out.println("洗牌后的集合 = "+list);
    }
}

image.gif

               运行结果 :

image.png

       3.static void sort(List<T> list) :

               该方法可以根据元素的自然顺序对指定的List集合进行升序排序。

              Δ代码演示 :

               仍然以Collections_Demo类为演示类,代码如下 :

packagecsdn.knowledge.api_tools.gather.collections;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.List;
publicclassCollections_Demo {
publicstaticvoidmain(String[] args) {
//演示 : Collections类常用方法Listlist=newArrayList();
list.add(141);
list.add(233);
list.add(666);
list.add(211);
list.add(11);
list.add(985);
list.add(24);
list.add(5);
System.out.println("当前集合 = "+list);
//3.static void sort(List<T> list) : 升序排序Collections.sort(list);
System.out.println("排序后的集合 = "+list);
    }
}

image.gif

               运行结果 :

image.png

       4.static <T> void sort(List<T> list, Comparator<? super T> c) :

               该方法可以根据指定的Comparator指定的顺序对指定的List集合进行升序排序。

              Δ代码演示 :

               仍然以Collections_Demo类为演示类,我们可以通过在匿名内部类中重写compare方法,更改排序的规则,比如说我们可以令List集合降序排列。代码如下 :

packagecsdn.knowledge.api_tools.gather.collections;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.Comparator;
importjava.util.List;
publicclassCollections_Demo {
publicstaticvoidmain(String[] args) {
//演示 : Collections类常用方法Listlist=newArrayList();
list.add(141);
list.add(233);
list.add(666);
list.add(211);
list.add(11);
list.add(985);
list.add(24);
list.add(5);
System.out.println("当前集合 = "+list);
//4.static <T> void sort(List<T> list, Comparator<? super T> c) : 指定排序Collections.sort(list, newComparator<Object>() {
@Overridepublicintcompare(Objecto1, Objecto2) {
if (o1instanceofInteger&&o2instanceofInteger)
return (Integer)o2- (Integer)o1;
return-1;
            }
        });
System.out.println("排序后的集合 = "+list);
    }
}

image.gif

               运行结果 :

image.png

       5.static void swap(List<?> list, int i, int j) :

               该方法可以将指定List集合中的i元素和j元素进行交换。

              Δ代码演示 :

               仍然以Collections_Demo类为演示类,代码如下 :

packagecsdn.knowledge.api_tools.gather.collections;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.List;
publicclassCollections_Demo {
publicstaticvoidmain(String[] args) {
//演示 : Collections类常用方法Listlist=newArrayList();
list.add(141);
list.add(233);
list.add(666);
list.add(211);
list.add(11);
list.add(985);
list.add(24);
list.add(5);
System.out.println("当前集合 = "+list);
//5.static void swap(List<?> list, int i, int j) : 指向元素进行交换Collections.swap(list, 0, list.size() -1);
System.out.println("交换元素后的集合 = "+list);
    }
}

image.gif

               运行结果 :

image.png

       6.static T max(Collection<? extends T> coll) :

               该方法可以根据元素的自然顺序,获取集合中的最大值。

              Δ代码演示 :

               仍然以Collections_Demo类为演示类,代码如下 :

packagecsdn.knowledge.api_tools.gather.collections;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.List;
publicclassCollections_Demo {
publicstaticvoidmain(String[] args) {
//演示 : Collections类常用方法Listlist=newArrayList();
list.add(141);
list.add(233);
list.add(666);
list.add(211);
list.add(11);
list.add(985);
list.add(24);
list.add(5);
System.out.println("当前集合 = "+list);
//6.static T max(Collection<? extends T> coll) : 获取集合中的最大值intmax= (int) Collections.max(list);
System.out.println("当前集合中最大的元素 = "+max);
    }
}

image.gif

               运行结果 :

image.png

       7.static T min(Collection<? extends T> coll) :

               该方法可以根据元素的自然顺序,获取集合中的最小值。

              Δ代码演示 :

               仍然以Collections_Demo类为演示类,代码如下 :

packagecsdn.knowledge.api_tools.gather.collections;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.List;
publicclassCollections_Demo {
publicstaticvoidmain(String[] args) {
//演示 : Collections类常用方法Listlist=newArrayList();
list.add(141);
list.add(233);
list.add(666);
list.add(211);
list.add(11);
list.add(985);
list.add(24);
list.add(5);
System.out.println("当前集合 = "+list);
//7.static T min(Collection<? extends T> coll) : 获取集合中的最小值intmin= (int) Collections.min(list);
System.out.println("当前集合中最大的元素 = "+min);
    }
}

image.gif

               运行结果 :

image.png

       8.static int frequency(Collection<?> c, Object o) :

               该方法可以返回指定元素在指定集合中一共出现的次数。

              Δ代码演示 :

               仍然以Collections_Demo类为演示类,代码如下 :  

packagecsdn.knowledge.api_tools.gather.collections;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.List;
publicclassCollections_Demo {
publicstaticvoidmain(String[] args) {
//演示 : Collections类常用方法Listlist=newArrayList();
list.add(141);
list.add(233);
list.add(666);
list.add(5);
list.add(11);
list.add(11);
list.add(11);
list.add(5);
System.out.println("当前集合 = "+list);
//8.static int frequency(Collection<?> c, Object o) :获取指定元素在指定集合中出现的次数inttimes_0=Collections.frequency(list, 11);
inttimes_1=Collections.frequency(list, 233);
inttimes_2=Collections.frequency(list, 5);
System.out.println("\n11在list集合中出现的次数 = "+times_0);
System.out.println("233在list集合中出现的次数 = "+times_1);
System.out.println("5在list集合中出现的次数 = "+times_2);
    }
}

image.gif

              运行结果 :

image.png

       9.static <T> void copy(List<? super T> dest, List<? extends T> src) :

               该方法可以将指定的旧集合中的元素拷贝到指定的新集合中。当新集合的长度小于旧集合时,抛出下标越界异常。

              Δ代码演示 :

               仍然以Collections_Demo类为演示类,代码如下 :  

packagecsdn.knowledge.api_tools.gather.collections;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.List;
publicclassCollections_Demo {
publicstaticvoidmain(String[] args) {
//演示 : Collections类常用方法Listlist=newArrayList();
list.add(141);
list.add(233);
list.add(666);
list.add(5);
list.add(11);
list.add(11);
list.add(11);
list.add(5);
System.out.println("当前集合 = "+list);
//9.static <T> void copy(List<? super T> dest, List<? extends T> src) : 将旧集合中的内容拷贝到新集合中Listlist2=newArrayList();
try {
Collections.copy(list2, list);
        } catch (Exceptione) {
System.out.print("新集合的长度小于旧集合时不能直接拷贝,否则抛出以下异常:");
System.out.println(e.toString());
        }
for (inti=0; i<list.size(); ++i) {
list2.add(null);
        }
Collections.copy(list2, list);
System.out.println("拷贝后的新集合 = "+list2);
    }
}

image.gif

               运行结果 :

image.png

       10.static <T> boolean replaceAll(List<T> list, T oldVal, T newVal) :

               该方法可以将集合中指定的旧值全部替换为指定的新值。

              Δ代码演示 :

               仍然以Collections_Demo类为演示类,代码如下 :  

packagecsdn.knowledge.api_tools.gather.collections;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.List;
publicclassCollections_Demo {
publicstaticvoidmain(String[] args) {
//演示 : Collections类常用方法Listlist=newArrayList();
list.add("Cyan");
list.add("RA9");
list.add("CSDN YYDS");
list.add("Cyan");
list.add("Cyan");
list.add("Kyrie");
list.add("Irving");
System.out.println("当前集合 = "+list);
//10.static <T> boolean replaceAll(List<T> list, T oldVal, T newVal) : 用新值替换集合中的旧值Collections.replaceAll(list, "Cyan", "Ice");
System.out.println("将\"Cyan\"全部替换为\"Ice\"后,集合为 = ");
System.out.println(list);
    }
}

image.gif

               运行结果 :

image.png

四、完结撒❀

       🆗,以上就是Collections类的全部内容了。内容本身没什么难度,主要是常用方法的汇总和演示,所见即所得。接下来,up将会和大家分享Java——泛型篇章的内容,我们不见不散。感谢阅读!

目录
相关文章
|
2月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
164 57
|
14天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
2月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
66 8
|
2月前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
79 17
|
2月前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
2月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
140 4
|
2月前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
87 2
|
2月前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
74 4
|
2月前
|
存储 Java 编译器
java wrapper是什么类
【10月更文挑战第16天】
49 3
|
2月前
|
Java Android开发
Eclipse 创建 Java 类
Eclipse 创建 Java 类
31 0