博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!
吾等采石之人,应怀大教堂之心,愿你们奔赴在各自的热爱中…
最近在阅读大家的面试博客,比较经常提及的一个点就是Java中Collection和Collections的区别,那我就简单整理一下吧!
Collection是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。实现该接口的类主要有List和Set,该接口的设计目标是为了各种具体的集合提供最大化的统一的操作方式。
Java集合相关知识请参考:List和Set集合基础详解
Collections是针对集合类的一个包裹类,它提供了一系列静态方法实现对各种集合的搜索、排序以及线程安全化等操作,其中的大多数方法都是用于处理线性表。Collections类不能实例化,如同一个工具类,服务于Collection框架。如果在使用Collections类的方法时,对应的Collection对象null,则这些方法都会抛出NullPointerException。
总结:Collection是一个集合接口,Collections是针对集合类的一个包装类,工具类
java.util.Collections 是一个包装类。它包含有各种有关集合操作的 静态多态方法。此类不能实例化,就像一 个工具类,服务于Java的Collection框架。
我用Java代码给大家演示了一些Collections 中常用方法:可亲测实践
<span style="color:#333333"><span style="background-color:#ffffff"><code class="language-javascript">package com.bcqn.controller;
<span style="color:#0000ff">import</span> java.util.ArrayList;
<span style="color:#0000ff">import</span> java.util.Arrays;
<span style="color:#0000ff">import</span> java.util.Collections;
<span style="color:#0000ff">import</span> java.util.List;
public <span style="color:#0000ff">class</span> <span style="color:#a31515">TestCollection</span> {
public <span style="color:#0000ff">static</span> <span style="color:#0000ff">void</span> <span style="color:#a31515">main</span>(<span style="color:#0000ff">String</span>[] args) {
<span style="color:#a31515">List</span><<span style="color:#a31515">Integer</span>> list = <span style="color:#0000ff">new</span> <span style="color:#a31515">ArrayList</span><>();
int array[] = {<span style="color:#880000">12</span>, <span style="color:#880000">2020</span>, <span style="color:#880000">30</span>, <span style="color:#880000">123</span>, <span style="color:#880000">999</span>};
<span style="color:#0000ff">for</span> (int i = <span style="color:#880000">0</span>; i < array.length; i++) {
list.<span style="color:#a31515">add</span>(array[i]);
}
<span style="color:#008000">//排序(Sort)</span>
<span style="color:#a31515">Collections</span>.<span style="color:#a31515">sort</span>(list);<span style="color:#008000">//排序</span>
<span style="color:#a31515">System</span>.out.<span style="color:#a31515">println</span>(list);
<span style="color:#008000">//反转(Reverse)</span>
<span style="color:#008000">//使用Reverse方法可以根据元素的自然顺序,对指定列表按降序进行排序。</span>
<span style="color:#a31515">Collections</span>.<span style="color:#a31515">reverse</span>(list);<span style="color:#008000">//反转</span>
<span style="color:#a31515">System</span>.out.<span style="color:#a31515">println</span>(list);
<span style="color:#008000">//替换所有元素(Fill)</span>
<span style="color:#a31515">Collections</span>.<span style="color:#a31515">fill</span>(list,-<span style="color:#880000">1</span>);<span style="color:#008000">//替换</span>
<span style="color:#a31515">System</span>.out.<span style="color:#a31515">println</span>(list);
<span style="color:#008000">//拷贝(copy)</span>
int array1[] = {<span style="color:#880000">12</span>, <span style="color:#880000">2020</span>, <span style="color:#880000">30</span>, <span style="color:#880000">123</span>, <span style="color:#880000">999</span>};
<span style="color:#0000ff">for</span> (int i = <span style="color:#880000">0</span>; i < array1.length; i++) {
list.<span style="color:#a31515">add</span>(array[i]);
}
<span style="color:#a31515">List</span><<span style="color:#a31515">Integer</span>> list1 = <span style="color:#0000ff">new</span> <span style="color:#a31515">ArrayList</span><<span style="color:#a31515">Integer</span>>(<span style="color:#a31515">Arrays</span>.<span style="color:#a31515">asList</span>(<span style="color:#0000ff">new</span> <span style="color:#a31515">Integer</span>[list.<span style="color:#a31515">size</span>()]));<span style="color:#008000">//目标列表</span>
<span style="color:#a31515">Collections</span>.<span style="color:#a31515">copy</span>(list1,list);<span style="color:#008000">//替换</span>
<span style="color:#a31515">System</span>.out.<span style="color:#a31515">println</span>(list1);
<span style="color:#008000">//返回Collections中最小元素(min)</span>
int min = <span style="color:#a31515">Collections</span>.<span style="color:#a31515">min</span>(list);<span style="color:#008000">//替换</span>
<span style="color:#a31515">System</span>.out.<span style="color:#a31515">println</span>(<span style="color:#a31515">"返回Collections中最小元素(min):"</span>+min);
<span style="color:#008000">//返回Collections中最大元素(max)</span>
<span style="color:#0000ff">for</span> (int i = <span style="color:#880000">0</span>; i < array1.length; i++) {
list.<span style="color:#a31515">add</span>(array[i]);
}
int max = <span style="color:#a31515">Collections</span>.<span style="color:#a31515">max</span>(list);<span style="color:#008000">//替换</span>
<span style="color:#a31515">System</span>.out.<span style="color:#a31515">println</span>(<span style="color:#a31515">"返回Collections中最大元素(max):"</span>+max);
}
}
</code></span></span>
运行结果
<span style="color:#333333"><span style="background-color:#ffffff"><code class="language-javascript">[<span style="color:#880000">12</span>, <span style="color:#880000">30</span>, <span style="color:#880000">123</span>, <span style="color:#880000">999</span>, <span style="color:#880000">2020</span>]
[<span style="color:#880000">2020</span>, <span style="color:#880000">999</span>, <span style="color:#880000">123</span>, <span style="color:#880000">30</span>, <span style="color:#880000">12</span>]
[-<span style="color:#880000">1</span>, -<span style="color:#880000">1</span>, -<span style="color:#880000">1</span>, -<span style="color:#880000">1</span>, -<span style="color:#880000">1</span>]
[-<span style="color:#880000">1</span>, -<span style="color:#880000">1</span>, -<span style="color:#880000">1</span>, -<span style="color:#880000">1</span>, -<span style="color:#880000">1</span>, <span style="color:#880000">12</span>, <span style="color:#880000">2020</span>, <span style="color:#880000">30</span>, <span style="color:#880000">123</span>, <span style="color:#880000">999</span>]
返回<span style="color:#a31515">Collections</span>中最小元素(min):-<span style="color:#880000">1</span>
返回<span style="color:#a31515">Collections</span>中最大元素(max):<span style="color:#880000">2020</span>
<span style="color:#a31515">Process</span> finished <span style="color:#0000ff">with</span> exit code <span style="color:#880000">0</span>
</code></span></span>
哈哈这下不会犯迷糊了吧!
The best investment is to invest in yourself.
非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!
2020.12.27 21:34 愿你们奔赴在自己的热爱里!