开源工具系列文章:
Apache Commons Lang(1):http://ray-yui.iteye.com/blog/1953020
Apache Commons Lang(2):http://ray-yui.iteye.com/blog/1958319
Apache Commons BeanUtils:http://ray-yui.iteye.com/blog/1961451
Apache Commons Collections:http://ray-yui.iteye.com/blog/2021484
Apache Commons IO:http://ray-yui.iteye.com/blog/2023034
程序=算法+数据结构,所以基本开源组织无论是Spring,Apache等都有他们各自对Collections的扩展,而这些扩展有时候能帮助到我们业务上的问题
public class TestMain {
public static void main(String[] args) {
/*
* Bag 是Collection的其中一种实现,使用起来也像List,
* 但它能容纳重复的元素,与List的最大区别是他提供了重复元素的統計功能,
* 但却剥夺了获取某一元素的功能(get方法),以下例子为统计集合中元素个数
*/
Bag bag = new HashBag(Arrays.asList("Hello", "World", "Wolrd", "Hello"));
// 增加3个Hello
bag.add("Hello", 3);
// bag没有get方法,只有getCount
bag.getCount("Hello");
// 可以使用uniqueSet方法返回不重复的Set
bag.uniqueSet();
/*
* BidiMap,是双向Map,可以通过key找到value,
* 也可以通过value找到key,需要注意的是BidiMap
* 当中不光key不能重复,value也不可以。
*/
BidiMap bidiMap = new DualHashBidiMap();
bidiMap.put("Hello", "World");
bidiMap.put("Hello1", "World1");
bidiMap.get("Hello"); // <--通过key获取value
bidiMap.getKey("World1");// <--通过value获取key
/*
* MultiMap 单个key指向多个对象,就是单个key可以对应多个value,
* 在put或remove时和普通Map没有区别,但当get时将返回多个value,
* 所以返回一个collections,利用MultiMap,我们就可以很方便的往 一个
* key上放数量不定的对象,也就实现了一对多,在3.2.1版本中MultiHashMap已被废除,
* 请使用MultiValueMap
*/
MultiMap multiMap = new MultiValueMap();
multiMap.put("Hello", "World");
multiMap.put("Hello", "World1");
multiMap.put("Hello", "World2");
// worldList[World,World1,World2]
List<String> worldList = (List<String>) multiMap.get("Hello");
/*
* LazyMap.类似与Hibenrate的懒加载,在声明的时候并不会创建,
* 而是在使用(get)的时候,才创建集合的内容,返回Factory的返回值
* 实现懒加载,有LazyList与LazyMap对应
*/
Map lazy = LazyMap.decorate(new HashMap(), new Factory() {
@Override
public Object create() {
return "World";
}
});
String hello = (String) lazy.get("Hello");
}
}
Apache commons中还有ListUtils,MapUtils等工具类,但笔者并没有使用过,有兴趣的读者可自行参考API,笔者认为,在面向对象开发当中,数据不应该再依赖集合类来组织,笔者曾经见过List<Map<String,Map<String,Object>>>这样的数据结构声明,笔者有莫名的冲动想在旁边注释一句WTF,有考虑过别人阅读代码的感受吗?能否抽象出类来组织你需要的数据?所以我们不应该过份的依赖数据结构来组织数据,特别在面向对象的开发当中
分享到:
相关推荐
Apache Commons Collections 4.0 API 是一个非常重要的Java库,它是Apache软件基金会开发的一个开源项目。这个库提供了大量的集合框架的扩展,使得开发者能够更高效、便捷地处理各种数据结构和算法。Apache Commons ...
Apache Commons Collections,简称Collections,是Apache软件基金会提供的一款开源Java库,它为Java集合框架提供了大量的实用工具类和扩展功能。在Java开发中,Collections库是不可或缺的一部分,极大地丰富了对数据...
Apache Commons Collections是Apache软件基金会的一个开源项目,提供了一套强大的、灵活的且高度可定制的Java集合框架。这个框架扩展了Java标准库中的集合类,为开发人员提供了更多的功能和便利。在本次讨论中,我们...
Apache Commons Collections是Java开发中常用的一个开源库,它为Java集合框架提供了大量的实用工具类和扩展。"commons-collections-3.2.jar"是该库的版本3.2的实现,它包含了一系列高效、实用且功能丰富的数据结构和...
Apache Commons 是一个由 Apache 软件基金会维护的开源项目,它提供了大量的 Java 类库,这些类库包含了许多实用的功能,极大地丰富了 Java 核心库的功能,为开发者提供了更强大的工具集。在Web开发中,Apache ...
3. **Apache Commons Collections**: 这个模块扩展了Java集合框架,提供了新的集合实现、迭代器、比较器、工厂和实用工具。例如,CollectionUtils提供了对集合的各种操作,如查找、过滤、合并等,而MapUtils则包含了...
Commons BeanUtils和Apache Commons Collections是Java开发中两个非常重要的库,它们为开发者提供了大量实用工具类,极大地简化了日常编程工作。这两个库都是Apache软件基金会的一部分,属于开源项目,广泛应用于...
4. **Collections**:Apache Commons Collections 专注于Java集合框架的扩展,增加了许多集合操作的辅助类,如集合转换、迭代器工具、堆栈和队列的实现等,提高了代码的灵活性和效率。 5. **BeanUtils**:Apache ...
Apache Commons 是一个由 Apache 软件基金会维护的开源项目集合,它提供了许多Java实用工具类,以增强Java标准库的功能。这些jar包是开发者在处理常见编程任务时的得力助手,涵盖范围广泛,包括数据结构、网络通信、...
Apache Commons 是一个由 Apache 软件基金会维护的开源项目,它提供了大量的 Java 类库,以帮助开发者解决常见的编程任务。这些类库弥补了 Java 核心库中的不足,为开发人员提供了更方便、功能更丰富的工具。"org....
Apache Commons是Apache软件基金会提供的一个开源Java工具包,它包含了许多独立的Java库,涉及的领域包括字符串操作、数学运算、数组操作、对象反射、XML处理等。本知识点将围绕Apache Commons文档中的关键组件展开...
1. **commons-collections4-4.1.jar**:这是Apache Commons Collections库的第四个主要版本,提供了各种数据结构(如Map和List的扩展)和算法,用于增强Java集合框架的功能。它包括了迭代器工厂、比较器构造器、集合...
Apache Commons是一套为Java开发者提供的开源工具库,它由一系列经过验证的、可重用的Java组件构成,旨在解决日常开发中的常见问题,并提高开发效率。这些工具集覆盖了广泛的领域,包括但不限于集合操作、配置管理、...
Apache Commons 是一个由 Apache 软件基金会维护的开源项目集合,它提供了大量的 Java 类库,这些类库弥补了 Java 核心库中的一些不足,为开发者提供了实用且高效的工具和组件。Apache Commons 项目旨在简化开发过程...
Apache Commons 是一个由 Apache 软件基金会维护的开源项目,它提供了大量可重用的 Java 类库,极大地丰富了 Java 核心库的功能。在这个更新至2011年12月的压缩包中,包含了几个关键的 Commons 模块,如 Beanutils、...
Apache Commons 是一个由 Apache 软件基金会维护的开源项目集合,它提供了许多Java库,旨在简化常见的编程任务。这些库通常包含实用工具类、数据结构、算法实现以及各种服务接口,大大增强了Java开发者的生产力。...
Apache Commons 是一个由 Apache 软件基金会维护的开源项目,它提供了大量的 Java 类库,以弥补 Java 核心库中的不足。"org.apache.commons" 是这个项目的主要命名空间,包含了许多子包,用于实现各种实用功能。在这...
3. **Collections**: Apache Commons Collections 提供了对 Java 集合框架的增强和补充,包括集合工厂、迭代器工具、集合转换等。例如,`ListUtils` 可以创建不可变列表、线程安全列表等;`MapUtils` 提供了创建预定...
本站为大家提供了org.apache.commons的jar包下载地址,Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动,需要此类JAR包的朋友们欢迎前来下载使用。 基本简介 commons包,根据...
Apache Commons Collections 4.4是Java开发人员常用的一个开源库,它是Apache软件基金会的一个项目,提供了许多实用的集合框架扩展,极大地丰富了Java标准库中集合类的功能。这个版本是4.4,属于项目的最新稳定版,...