`
sasunlin2000
  • 浏览: 14700 次
  • 性别: 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....

    commons-collections4-4.1

    这个修复对于那些依赖于Commons Collections的中间件和应用程序来说至关重要,因为它们需要确保能够抵御这类攻击。 此版本的更新不仅仅是安全修复,还可能包含其他性能改进和bug修复。Apache Commons Collections 4...

    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-API文档-中英对照版.zip

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

    commons-collections-3.2.2.jar

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

    collections4/collections15 jar

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

    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