`

java.util.Collections使用说明

 
阅读更多
空集合
Collections.EMPTY_LIST,Collections.emptyList()——返回只读的空LIST 集合
Collections.EMPTY_MAP,Collections.emptyMap()——返回只读的空MAP集合
Collections.EMPTY_SET,Collections.emptySet()返回只读的空SET集合
所谓的空集合指的是没有元素在这些集合中,特别需要主要的是返回的集合都是只读的。以下代码会抛出UnsupportedOperationException异常。
-------------------------------------------------------
public static void main(String[] args) 
{
	List children=Collections.EMPTY_LIST;
children.add(new HashMap());
}
-------------------------------------------------------
Collections.emptyList(),Collections.emptySet(),Collections.emptyMap()由于支持泛型使用起来会更方便,例如
--------------------------------------------------------------
List<String> s = Collections.emptyList();
---------------------------------------------------------------
单元素集合
Collections中的单元素集合指的是集合只有一个元素而且集合只读。
Collections.singletonList——用来生成只读的单一元素的List
Collections.singletonMap——用来生成只读的单Key和Value组成的Map
Collections.singleton——用来生成只读的单一元素的Set
只读集合
Collections提供了生成几种生成只读集合的方法unmodifiableCollection,unmodifiableList,unmodifiableMap,unmodifiableSet,
unmodifiableSortedMap,unmodifiableSortedSet。这些集合一旦初始化以后就不能修改,任何修改这些集合的方法都会抛出
UnsupportedOperationException异常。
Checked集合(Checked Collections)
Checked集合具有检查插入集合元素类型的特性,例如当我们设定checkedList中元素的类型是String的时候,如果插入起来类型的元素就会抛出
ClassCastExceptions异常,Java5中提供泛型的功能,泛型功能能够在代码编译阶段就约束集合中元素的类型,但有些时候声明的集合可能是raw集合,
编译阶段的类型约束就不起作用了,这个时候Checked集合就能起到约束集合中元素类型的作用。
Collections中提供了以下生成Checked集合的方法
checkedCollection,checkedList,checkedMap,checkedSet,checkedSortedMap,checkedSortedSet
同步集合(Synchronized Collections)
Collections的synchronizedXxxxx系列方法顾名思义会返回同步化集合类(SynchronizedMap,
SynchronizedList等等)。这些集合类内部实现都是通过一个mutex(互斥体)来实现对这些集合操作的同步化。
Enumeration接口
从JDK1.0开始Java就提供了Enumeration接口。Collections中list和enumeration和Enumeration接口相关。
list(Enumeration<T> e) 方法用于有Enumeration接口中产生一个List
——————————————————————————————————————
 public void demonstrateEnumerationToList()  
 {  
    log("===== Demonstrate Collections.list(Enumeration) =====", System.out);  
    final Enumeration properties = System.getProperties().propertyNames();  
    final List propertiesList = Collections.list(properties);  
    log(propertiesList.toString(), System.out);  
 }  
——————————————————————————————————————
enumeration(Collection<T> c) 方法用于基于Collection返回Enumeration。
——————————————————————————————————————
 public void demonstrateCollectionToEnumeration()  
 {  
    log("===== Demonstrate Collections.enumeration(Collection) =====", System.out);  
    final Enumeration books = Collections.enumeration(this.favoriteBooks);  
   while (books.hasMoreElements())  
    {  
       log(books.nextElement().toString(), System.out);  
    }  
——————————————————————————————————————
 }  
查找替换
fill——使用指定元素替换指定列表中的所有元素。
frequency——返回指定 collection 中等于指定对象的元素数。
indexOfSubList—— 返回指定源列表中第一次出现指定目标列表的起始位置,如果没有出现这样的列表,则返回 -1。
lastIndexOfSubList——返回指定源列表中最后一次出现指定目标列表的起始位置,如果没有出现这样的列表,则返回-1。
max—— 根据元素的自然顺序,返回给定 collection 的最大元素。
min——根据元素的自然顺序 返回给定 collection 的最小元素。
replaceAll——使用另一个值替换列表中出现的所有某一指定值。
集合排序
Collections还提供了集中对集合进行排序的方法。
reverse——对List中的元素倒序排列
shuffle——对List中的元素随即排列,这个方法让我想到了Apple的iPod Shuffle
sort——对List中的元素排序
swap——交换List中某两个指定下标位元素在集合中的位置。
rotate——循环移动。循环移动这个方法让人比较难以理解,下面的例子就会让你一下子就理解这个方法的含义。
——————————————————————————————————————
假设 list 包含  [t, a, n, k, s]
在调用 Collections.rotate(list, 1)(或 Collections.rotate(list, -4))之后,list 将包含 [s, t, a, n, k]。
——————————————————————————————————————
其他方法
binarySearch——使用二进制搜索算法来搜索指定列表,以获得指定对象。
addAll——将所有指定元素添加到指定 collection 中。
copy——将所有元素从一个列表复制到另一个列表。
disjoint——如果两个指定 collection 中没有相同的元素,则返回 true。
nCopies——返回由指定对象的 n 个副本组成的不可变列表。
分享到:
评论

相关推荐

    Java学生成绩管理系统源代码

    Java学生成绩管理系统源代码: imporjava.io.BufferedWriter; import java.io.File;...import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.StringTokenizer;

    java.util.concurrent_您不知道的5件事

    除了具有很好的并发性的Collections,java.util.concurrent还引入了其他一些预先构建的组件,它们可帮助您调整和执行多线程应用程序中的线程。

    javaListsInMeteor:使用Meteor项目SubscriptTables作为表GUI发送,接收和订阅java.util.collections数据

    java-lists-in-meteor-包含允许您与Meteor项目SubscriptTables之间发送,接收java.util.list项以及允许在SubscriptTables上进行更改的类。 它能做什么: Maven项目java-lists-in-meteor显示了类的使用...

    Java基础知识点总结.docx

    &lt; java.util &gt; Collection接口 77 &lt; java.util &gt;Iterator接口 78 &lt; java.util &gt;List接口 78 &lt; java.util &gt;Set接口 80 &lt; java.util &gt;Map接口 81 把map集合转成set的方法 82 使用集合的技巧 83 Collections--集合工具...

    ynn-util-collections:java.util 集合 API 的增强

    ynn-util-collections java.util 集合 API 的增强。 此实用程序库包含多项增强功能,例如: 图形SQL 类似对集合的查询和操作有关更多详细信息,请参阅 。

    基于MVC框架下高博微校园APP系统的设计与实现

    import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream;...import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List;

    数据结构实验2 线性表.doc

    实验报告2 线性表 一、 实验目的: (1) 理解线性表的逻辑结构、两种存储结构和数据操作;...import java.util.Collections; import java.util.List; public class MergeList { public static void m

    JavaSE-6.0-英文手册(2008/11/30_FullUpdate)

    java.lang, java.util Packages Instrumentation Language and Utility Packages Monitoring and Management Package Version Identification Reference Objects Reflection Collections Framework ...

    trove:Trove 3库的修补版本-更改Collections语义以匹配适当的java.util.Map语义

    宝库3.0.3 Trove库的修补版本-更改Collections语义以匹配适当的java.util.Map语义Palantir Technologies已对该库进行了修补,以进行以下更改: 分支由Palantir Gotham 3.12.x使用: Trove的一系列装饰器的实现,这些...

    google-collections

    oogle collections是google的工程师利用传说中的“20%时间”开发的集合库,它是对java.util的扩展,提供了很多实用的类来简化代码。google collections使用了范型,所以要求jdk1.5以上。它的作者没有像apache ...

    commons-Collections最常用类介绍.pdf

    java.util.Collection及其子类,加上java.util.Collections类提供的操作方法,处理一些简单的数据结构问题还可以,稍微复杂一点的就觉得 有点头痛,很多细节的地方需要我插入这样那样的小逻辑,或者感觉它太死板,...

    了解Collection 和 Collections

    Collection 和 Collections区别 java.util.Collection 是一个集合接口(集合类的一个顶级接口)。 它提供了对集合对象进行基本...java.util.Collections 是一个包装类(工具类/帮助类)。 它包含有各种有关集合操作的

    google-collections-1.0.rar

    google公共工具类;google collections是google的工程师利用传说中的“20%时间”开发的集合库,它是对java.util的扩展,提供了很多实用的类来简化代码。google collections使用了范型,所以要求jdk1.5以上。

    最小最大规范化、 小数定标、z_score规范化算法

    三、实验内容  运用java编程语言实现求最小最大规范化、小数定标、z_score规范化的算法。 源代码 ... import java.util.Iterator; import java.util.List;...import java.util.Collections; public class Rule {

    set.list.map接口

    Collections.sort(list); //依次检索输出list的所有对象 // for(int i=0;i&lt;list.size();i++){ // System.out.println(list.get(i)); // } Iterator Iter=list.iterator(); while(Iter.hasNext()){ System.out...

    介绍的是学生管理系统代码

    import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.StringTokenizer; /* * Created on 2005-1-11 */ /** * @author 让炜 * @since 1.0 * * TODO ...

    Android 上应用Googlemap

    import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; //MapView Com import com.google.android.maps.MapView; import ...

    阿里巴巴的JSON实用jar包集合整理

    fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴开发。 包中包含fastjson-1.1.37.jar,fastjson-1.2.2.jar ,fastjson-1.2.2-sources.jar等

    Java高级程序设计:第7章-集合框架.pptx

    掌握Collections类的使用 了解集合框架中的其它集合类 集合框架(Collection Framework) java.util包中定义了各种用于集合操作的类和接口,这些类和接口构成了Java语言的集合框架(Collection Framework)。 Java集合中...

    Insight:寻找政治捐助者

    #Political Donation Insight数据工程 该程序旨在分析来自联邦选举委员会的竞选捐款数据,并按...import java.util.Collections; import java.util.PriorityQueue; 对于Python import os import codecs import numpy

Global site tag (gtag.js) - Google Analytics