`
sasunlin2000
  • 浏览: 14803 次
  • 性别: Icon_minigender_1
  • 来自: 河南省
社区版块
存档分类
最新评论

Collection 和 Collections的区别

阅读更多
1. Collection是集合类的一个顶级接口,其直接继承接口有List与Set

而Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。



1) 排序(Sort)
使用sort方法可以根据元素的自然顺序 对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口。此列表内的所有元素都必须是使用指定比较器可相互比较的
double array[] = {112, 111, 23, 456, 231 };
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.sort(list);
for (int i = 0; i < array.length; i++) {
   System.out.println(li.get(i));
}
//结果:112,111,23,456,231
2) 混排(Shuffling)
混排算法所做的正好与 sort 相反: 它打乱在一个 List 中可能有的任何排列的踪迹。也就是说,基于随机源的输入重排该 List, 这样的排列具有相同的可能性(假设随机源是公正的)。这个算法在实现一个碰运气的游戏中是非常有用的。例如,它可被用来混排代表一副牌的 Card 对象的一个 List 。另外,在生成测试案例时,它也是十分有用的。
Collections.Shuffling(list)
double array[] = {112, 111, 23, 456, 231 };
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.shuffle(list);
for (int i = 0; i < array.length; i++) {
   System.out.println(li.get(i));
}
//结果:112,111,23,456,231
3) 反转(Reverse)
       使用Reverse方法可以根据元素的自然顺序 对指定列表按降序进行排序。
Collections.reverse(list)
double array[] = {112, 111, 23, 456, 231 };
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections. reverse (list);
for (int i = 0; i < array.length; i++) {
   System.out.println(li.get(i));
}
//结果:231,456,23,111,112
4) 替换所以的元素(Fill)
使用指定元素替换指定列表中的所有元素。
String str[] = {"dd","aa","bb","cc","ee"};
for(int j=0;j<str.length;j++){
li.add(new String(str[j]));
}
Collections.fill(li,"aaa");
for (int i = 0; i < li.size(); i++) {
System.out.println("list[" + i + "]=" + li.get(i));

}
//结果:aaa,aaa,aaa,aaa,aaa

5) 拷贝(Copy)
用两个参数,一个目标 List 和一个源 List, 将源的元素拷贝到目标,并覆盖它的内容。目标 List 至少与源一样长。如果它更长,则在目标 List 中的剩余元素不受影响。
Collections.copy(list,li): 后面一个参数是目标列表 ,前一个是源列表
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
List li = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
double arr[] = {1131,333};
String str[] = {"dd","aa","bb","cc","ee"};
for(int j=0;j<arr.length;j++){
li.add(new Double(arr[j]));
}
Collections.copy(list,li);
for (int i = 0; i <list.size(); i++) {
System.out.println("list[" + i + "]=" + list.get(i));
}
//结果:1131,333,23,456,231
6) 返回Collections中最小元素(min)
根据指定比较器产生的顺序,返回给定 collection 的最小元素。collection 中的所有元素都必须是通过指定比较器可相互比较的
Collections.min(list)
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.min(list);
for (int i = 0; i <list.size(); i++) {
System.out.println("list[" + i + "]=" + list.get(i));
}
//结果:23
7) 返回Collections中最小元素(max)
根据指定比较器产生的顺序,返回给定 collection 的最大元素。collection 中的所有元素都必须是通过指定比较器可相互比较的
Collections.max(list)
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.max(list);
for (int i = 0; i <list.size(); i++) {
System.out.println("list[" + i + "]=" + list.get(i));
}
//结果:456
8) lastIndexOfSubList
返回指定源列表中最后一次出现指定目标列表的起始位置
int count = Collections.lastIndexOfSubList(list,li);
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
List li = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
double arr[] = {111};
String str[] = {"dd","aa","bb","cc","ee"};
for(int j=0;j<arr.length;j++){
li.add(new Double(arr[j]));
}
Int locations = Collections. lastIndexOfSubList (list,li);
System.out.println(“===”+ locations);
//结果 3
9) IndexOfSubList
返回指定源列表中第一次出现指定目标列表的起始位置
int count = Collections.indexOfSubList(list,li);
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
List li = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
double arr[] = {111};
String str[] = {"dd","aa","bb","cc","ee"};
for(int j=0;j<arr.length;j++){
li.add(new Double(arr[j]));
}
Int locations = Collections.indexOfSubList(list,li);
System.out.println(“===”+ locations);
//结果 1
10) Rotate
根据指定的距离循环移动指定列表中的元素
Collections.rotate(list,-1);
如果是负数,则正向移动,正数则方向移动
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.rotate(list,-1);
for (int i = 0; i <list.size(); i++) {
System.out.println("list[" + i + "]=" + list.get(i));
}
//结果:111,23,456,231,112
分享到:
评论

相关推荐

    Collection与Collections,Array与Arrays的区别

    Collection和Collections的主要区别在于: * Collection是一个接口,提供了基本的集合操作,而Collections是一个静态类,提供了各种集合操作的静态方法。 * Collection可以被实例化,而Collections不能被实例化。 *...

    了解Collection 和 Collections

    在Java编程语言中,`Collection`和`Collections`是两个重要的概念,它们是Java集合框架的核心组成部分。让我们深入了解这两个概念及其区别。 首先,`Collection`是一个接口,位于Java集合框架的顶层,它定义了所有...

    浅谈Java中Collection和Collections的区别

    在Java编程语言中,`Collection`和`Collections`是两个重要的概念,它们在处理数据集合时扮演着不同的角色。理解这两个概念的区别对于高效地利用Java集合框架至关重要。 首先,我们来详细了解一下`Collection`接口...

    Java的Collection VS Collections - 揭秘数据操控的奥秘

    Java的Collection VS Collections

    Java SE编程入门教程 collection与collections(共7页).pptx

    Java SE编程入门教程涵盖了许多Java基础概念,包括集合框架中的Collection和Collections。这两个概念在Java编程中至关重要,尤其是在处理数据存储和操作时。 首先,Collection是Java集合框架的一个顶级接口,它定义...

    java collection framework

    - `Collections.max()` 和 `Collections.min()`: 获取 List 中的最大值和最小值。 - `Collections.binarySearch()`: 在已排序的 List 中进行二分查找。 #### 六、使用注意事项 在使用 Java Collection Framework ...

    java基础之Collection与Collections和Array与Arrays的区别

    Java 基础之 Collection 与 Collections 和 Array 与 Arrays 的区别 Collection 是 Java.util 下的一个接口,它是各种集合结构的父接口。继承与他的接口主要有 Set 和 List。Collection 是一个抽象概念,不能直接...

    Collections

    * `Collections.unmodifiableCollection(Collection&lt;? extends T&gt; c)`: 返回一个不可变的集合。 不可变集合 Collections 中的不可变集合方法包括返回不可变的集合和返回不可变的列表。 * `Collections....

    collections4/collections15 jar

    在Java编程中,`collections4`和`collections15`可能指的是Apache Commons Collections库的不同版本。这个库是Apache软件基金会提供的一个强大且实用的集合框架扩展,它为Java的内置集合类提供了更多的功能和优化。...

    commons-collections4-4.1

    Transforming decorators that alter each object as it is added to the collection Composite collections that make multiple collections look like one Ordered maps and sets that retain the order elements ...

    IconExperience X-Collections FULL collection.part1

    IconExperience X-Collections FULL collection.part1

    commons-beanutils、commons-collections、commons-collections等常用jar 包下载

    这是Commons Collections的一个新版本,对原有的API进行了优化和改进。主要改进包括: - 与Java 5及更高版本的兼容性:使用泛型、枚举和可变参数等特性。 - 性能优化:部分算法和实现进行了性能提升。 - 新的...

    commons-collections-3.2.2.jar

    apache-common系列中的重要的成员:apache-common-collections。包中对Java中的集合类进行了一定的补充,定义了一些全新的集合,当然也是实现了Collection接口的,比如Bag,BidiMap。同时拥有新版本的原有集合,比如...

    commons-collections-3.2.2-API文档-中英对照版.zip

    赠送jar包:commons-collections-3.2.2.jar; 赠送原API文档:commons-collections-3.2.2-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    com.unity.collections@0.9.0-preview.6.7z

    6. **Unity.Collections.meta** 和 **Unity.Collections.Tests.meta**:分别代表Unity.Collections库的元数据文件和测试相关的元数据文件,后者可能包含了一些用于验证库功能的单元测试。 综上所述,这个压缩包包含...

    commons-collections4-4.1.jar

    Commons Collections是Apache软件基金会开发的一个Java库,主要提供对集合框架的增强和扩展。这个库是Java标准集合接口的补充,增加了许多实用的功能,提高了代码的可读性和效率。"commons-collections4-4.1.jar"是...

    SAP Collections Management

    2. 应收账款的收集流程(Collection of Receivables):这一流程描述了如何追踪和收集应收款项。包括客户账目的评估、识别、分层和优先排序,以及如何从风险管理的角度和客户关系的角度进行主动收款。 3. 控制应收...

    commons-collections4-4.2资源包

    Apache Commons Collections 4.2、可重用的java工具包。

Global site tag (gtag.js) - Google Analytics