`
longgangbai
  • 浏览: 7332362 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring中常用的Collection工具类的学习

阅读更多

Springd 中CollectionUtils 和Apache的Commons-Collections中部分方法一样,其功能和FileCopyUtils在Spring和Commons-Collection中一样的。

 

public class CollectionUtils {

 /**
  * The shared, singleton empty iterator instance.
  */
 public static final Iterator EMPTY_ITERATOR = new EmptyIterator();

 /**
  * The shared, singleton empty attribute map instance.
  */
 public static final AttributeMap EMPTY_ATTRIBUTE_MAP = new LocalAttributeMap(Collections.EMPTY_MAP);

 /**
  * Private constructor to avoid instantiation.
  */
 private CollectionUtils() {
 }

 /**
  * Factory method that adapts an enumeration to an iterator.
  * @param enumeration the enumeration
  * @return the iterator
  */
 public static Iterator toIterator(Enumeration enumeration) {
  return new EnumerationIterator(enumeration);
 }

 /**
  * Factory method that returns a unmodifiable attribute map with a single entry.
  * @param attributeName the attribute name
  * @param attributeValue the attribute value
  * @return the unmodifiable map with a single element
  */
 public static AttributeMap singleEntryMap(String attributeName, Object attributeValue) {
  return new LocalAttributeMap(attributeName, attributeValue);
 }

 /**
  * Add all given objects to given target list. No duplicates will be added. The contains() method of the given
  * target list will be used to determine whether or not an object is already in the list.
  * @param target the collection to which to objects will be added
  * @param objects the objects to add
  * @return whether or not the target collection changed
  */
 public static boolean addAllNoDuplicates(List target, Object[] objects) {
  if (objects == null || objects.length == 0) {
   return false;
  } else {
   boolean changed = false;
   for (int i = 0; i < objects.length; i++) {
    if (!target.contains(objects[i])) {
     target.add(objects[i]);
     changed = true;
    }
   }
   return changed;
  }
 }

 /**
  * Iterator iterating over no elements (hasNext() always returns false).
  */
 private static class EmptyIterator implements Iterator, Serializable {

  private EmptyIterator() {
  }

  public boolean hasNext() {
   return false;
  }

  public Object next() {
   throw new UnsupportedOperationException("There are no elements");
  }

  public void remove() {
   throw new UnsupportedOperationException("There are no elements");
  }
 }

 /**
  * Iterator wrapping an Enumeration.
  */
 private static class EnumerationIterator implements Iterator {

  private Enumeration enumeration;

  public EnumerationIterator(Enumeration enumeration) {
   this.enumeration = enumeration;
  }

  public boolean hasNext() {
   return enumeration.hasMoreElements();
  }

  public Object next() {
   return enumeration.nextElement();
  }

  public void remove() throws UnsupportedOperationException {
   throw new UnsupportedOperationException("Not supported");
  }
 }
}

分享到:
评论

相关推荐

    基于Spring2.0的Collection配置使用例子

    在Spring框架中,集合配置是将Java集合对象如List、Set、Map等与Spring的IoC容器紧密结合的关键特性。在Spring 2.0版本中,这个功能已经相当成熟且广泛使用,使得开发者能够方便地管理和注入这些集合类型的依赖。本...

    mongoTemplate工具类Dao层方法封装.zip

    这个资源包“mongoTemplate工具类Dao层方法封装.zip”显然提供了两种版本的MongoTemplate操作集合的代码示例,旨在帮助开发者更高效地进行数据访问层(Dao层)的开发。以下是关于MongoTemplate及它在 Dao 层中使用的...

    spring的练习小sample

    2. **spring_1600_hibernate_hibernateTemplate**:Spring的HibernateTemplate是一个过时但常用的工具类,用于简化与Hibernate的数据访问操作。它封装了常见的数据库操作,如查询、更新、删除等,减轻了开发者的工作...

    有关spring的一些学习总结

    在文件"java_collection_类比较.pdf"中,可能会详细讲解Java集合框架的各种类,如ArrayList、LinkedList、HashSet、HashMap等的区别和使用场景,这对于理解Spring中如何管理和操作数据非常重要。 "itbities.txt...

    Spring Data MongoDB 中文参考文档和Springboot使用例子.rar

    通过提供的Spring Data MongoDB中文参考文档和Spring Boot使用例子,你可以深入学习如何结合这两个强大的工具,构建高效、可扩展的MongoDB应用。文档将详细介绍配置、实体映射、查询方法、索引以及全文搜索等方面的...

    java微博源码-syske-common-utils:本项目是我在日常工作学习的过程中,用到的java开发常用工具类,绝大部分都是我自己在具

    本项目是我在日常工作学习的过程中,用到的java开发常用工具类,绝大部分都是我自己在具体项目中形成的,当然其中有一些代码是参考了别人的代码和博客,然后进行本地化的改造。开源此项目的主要是为了减少自己在未来...

    spring-data-mongo配置成功

    确保这些工具类与Spring Data MongoDB的API兼容,可以帮助提升代码的可读性和复用性。 通过以上步骤,你已经成功配置了Spring Data MongoDB,现在可以愉快地进行MongoDB的数据操作了。记住,Spring Data MongoDB的...

    spring_mongo项目示例

    在Spring Data MongoDB中,我们使用`@Document`注解来标记一个类作为MongoDB的文档映射。例如: ```java @Document(collection = "users") public class User { @Id private String id; private String name; ...

    spring-boot操作mongodb例子

    Spring Boot 是一个由 Pivotal 团队开发的框架,旨在简化 Spring 应用程序的...通过学习这个例子,开发者可以更好地理解如何在实际项目中利用 Spring Boot 的强大功能来操作非关系型数据库,实现高效的数据存储和检索。

    spring boot操作kafka例子

    在Spring Boot中,我们通常使用Kafka AdminClient或者Kafka命令行工具来创建主题。例如,可以通过以下Java代码创建一个名为`my-topic`的主题: ```java @Autowired private KafkaAdmin kafkaAdmin; @...

    maven-spring-mongo

    6. **配置**:在 Spring 应用中,需要在配置类中添加 MongoDB 的连接信息,如 `host`、`port`、`database` 和 `collection` 名称,然后创建 `MongoClient` 实例,接着配置 `MongoTemplate` 或 `MongoRepository`。...

    spring,jvm,osgi文档

    在IT行业中,Spring、JVM和OSGi是三个至关重要的技术领域。它们分别代表了Java应用的框架、Java虚拟机以及模块化系统。下面将详细阐述这三个方面的知识点。 首先,Spring是一个广泛使用的Java企业级应用开发框架,...

    Mybaitis-Spring整合

    通过本篇内容的学习,我们不仅掌握了MyBatis与Spring整合的基本方法,还深入了解了MyBatis中高级结果映射、延迟加载以及查询缓存等关键技术点。这些技术的应用能显著提升项目的开发效率和系统的运行性能,对于构建高...

    SSM进阶2(Spring+SpringMVC+Mybatis)

    通过`@Autowired`注解,Spring能够自动将依赖注入到需要的类中,简化代码并提高可测试性。AOP则允许我们在不修改原有代码的情况下,添加额外的功能,比如日志记录、事务管理等。 **SpringMVC**是Spring的Web MVC...

    Ibatis 常用学习资料

    10. **MyBatis Generator**:这是一个代码生成工具,能够自动生成Mapper接口、Mapper XML文件以及对应的实体类,大大减轻了开发工作量。 11. **Spring集成**:Ibatis 可以与Spring框架无缝集成,通过Spring的事务...

    Drools+Spring环境构建

    在本文中,我们将探讨如何构建一个基于Drools和Spring的集成环境,以及如何利用这些工具来实现规则流技术。Drools是一个强大的业务规则管理系统,它允许开发人员以声明式的方式定义业务规则。而jBPM(Java Business ...

    java学习路线.docx

    学习如何定义接口和抽象类,并在子类中实现这些接口或抽象方法。 - **内部类:** 内部类是一种特殊类,它定义在另一个类的内部。学习匿名内部类、静态内部类等不同类型的内部类及其应用场景。 4. **异常处理:** ...

    java中常用的英语单词汇总共22页.pdf.zip

    【标题】"Java中常用的英语单词汇总共22页.pdf.zip" 提供的是关于Java编程语言中常见英文词汇的集合,这份文档可能是为了帮助Java开发者更好地理解和记忆在编程过程中经常遇到的专业术语。Java是一种广泛使用的面向...

    SpringCollectionExample

    此外,Spring还提供了集合的工具类`org.springframework.util.CollectionUtils`,提供了诸如检查集合是否为空、合并集合等实用方法。在实际开发中,我们可以通过这些工具类简化集合操作。 在"SpringExamples"这个...

    JAVA学习基本路线

    5. **集合框架**: 熟悉Java中的集合框架(Collection Framework),如List、Set、Map等的数据结构与使用方法。 6. **输入/输出流(IO)**: 学习Java中的输入输出流,包括文件操作、缓冲区读写等技术。 7. **多线程**: ...

Global site tag (gtag.js) - Google Analytics