- 浏览: 546230 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
wa114d:
楼主工作几年了,好厉害
一个面试官对面试问题的分析 -
wobuxiaole:
Good,非常好
30岁前男人需要完成的事 -
小逗逗:
Good,非常好
30岁前男人需要完成的事 -
invincibleLiu:
好帖,要顶!(别投我隐藏啊,这是对BBS最原始一种支持)
Java:synchronized修饰符在静态方法与非静态方法上的区别 -
fayedShih:
第三题,不知道对不对
import java.util.con ...
企业牛逼面试题目 高手进来讨论答题
先来看Bag组。
Bag
HashBag
BagUtils
Bag是在org.apache.commons.collections包中定义的接口,它extends java.util.Collection,而它的实现类都被放在下面的bag包中。之所以有这样一组类型,是因为我们有时候需要在Collection中存放多个相同对象的拷贝,并且需要很方便的取得该对象拷贝的个数。需要注意的一点是它虽然extends Collection,但是如果真把它完全当作java.util.Collection来用会遇到语义上的问题,详细信息参考Javadoc。
HashBag是Bag接口的一个标准实现。而BagUtils提供一组static的方法让调用者获取经过不同装饰后的Bag实例。
还是举例子来看:
/** Book.java */
package sean.study.commons.collections;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
public class Book {
private String name;
private String isbn;
private double retailPrice;
public Book() {
}
public Book(String name, String isbn, double retailPrice) {
this.name = name;
this.isbn = isbn;
this.retailPrice = retailPrice;
}
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("name", name)
.append("ISBN", isbn)
.append("retailPrice", retailPrice)
.toString();
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getRetailPrice() {
return retailPrice;
}
public void setRetailPrice(double retailPrice) {
this.retailPrice = retailPrice;
}
}
/** BagUsage.java */
package sean.study.commons.collections;
import org.apache.commons.collections.Bag;
import org.apache.commons.collections.BagUtils;
import org.apache.commons.collections.bag.HashBag;
import org.apache.commons.lang.StringUtils;
public class BagUsage {
public static void main(String[] args) {
demoBagUsage();
}
public static void demoBagUsage() {
System.out.println(StringUtils.center(" demoBagUsage ", 40, "="));
// data setup
Book book1 = new Book("Refactoring Workbook", "7-5083-2208-8", 29.8);
Book book2 = new Book("J2EE Design Patterns", "7-5083-3099-4", 45);
Book book3 = new Book("Agile Software Development", "7-5083-1503-0", 59);
// create a bag
Bag myBag = BagUtils.typedBag(new HashBag(), Book.class);
myBag.add(book1, 360);
myBag.add(book2, 500);
myBag.add(book3, 170);
// calculations for a bag
double price1 = book1.getRetailPrice();
double price2 = book2.getRetailPrice();
double price3 = book3.getRetailPrice();
int book1Count = myBag.getCount(book1);
int book2Count = myBag.getCount(book2);
int book3Count = myBag.getCount(book3);
double totalValue = (price1 * book1Count) + (price2 * book2Count)
+ (price3 * book3Count);
// dispaly results
System.out.println("There are " + book1Count + " copies of "
+ book1.getName() + ".");
System.out.println("There are " + book2Count + " copies of "
+ book2.getName() + ".");
System.out.println("There are " + book3Count + " copies of "
+ book3.getName() + ".");
System.out.println("The total value of these books is: " + totalValue);
System.out.println();
}
}
以下是运行结果:
============= demoBagUsage =============
There are 360 copies of Refactoring Workbook.
There are 500 copies of J2EE Design Patterns.
There are 170 copies of Agile Software Development.
The total value of these books is: 43258.0
需要说明的是,以上的代码仅仅为了演示如何使用Bag,实际应用不建议像这样硬编码。
发表评论
-
妙用Commons良药 StringUtils
2011-03-08 10:48 1318来自:http://lighter.iteye.c ... -
分享 commons io 工具类 代码
2011-03-04 17:53 1148来自:http://www.iteye.com/topic/5 ... -
Jakarta Commons笔记] 结语
2008-11-12 11:15 1276在前面的随笔中,我们一起过了一遍Jakarta Common ... -
Commons Collections - Transformer组 补充
2008-11-12 11:11 1290// transformer setup T ... -
[Jakarta Commons笔记] Commons Collections - Closure组
2008-11-12 10:31 1577接下来看Closure组。 Closure Chaine ... -
Commons Collections - Transformer
2008-11-12 10:19 1506接下来看Transformer组。 T ... -
[Jakarta Commons笔记]Commons Collections - Predicate
2008-11-12 10:17 2042接下来看Predicate组 Predicate And ... -
Commons Collections - Comparator组
2008-11-12 09:55 1371接下来我们会讲到辅助类,首先看Comparator组。 R ... -
Commons Collections - Collection 组
2008-11-12 09:43 1320接下来看看Collection组。 TypedColle ... -
[Jakarta Commons笔记] Commons Collections - Map组
2008-11-12 09:39 1573接下来看Map组。 BidiMap MultiMap L ... -
[Jakarta Commons笔记] Commons Collections - Buffer组
2008-11-12 09:23 1402来看Buffer组。 Buffer BlockingBuf ... -
[Jakarta Commons笔记] Commons Collections
2008-11-11 17:30 2342Commons Collections,又是 ... -
[Jakarta Commons笔记] 代码范例 - BeanUtils
2008-11-11 16:56 1225假定我们有如下两个标准的JavaBean: /** Ad ... -
[Jakarta Commons笔记] Commons BeanUtils
2008-11-11 16:44 1934Jakarta Commons项目提供了相当丰富的API,我们 ... -
[Jakarta Commons笔记] org.apache.commons.lang.time
2008-11-11 16:14 1817好了,来看我在Common Lang中最后要讲的一个包:org ... -
[Jakarta Commons笔记] org.apache.commons.lang.math
2008-11-11 16:12 1807在Jakarta Commons中,专门处理数学计算的类分别可 ... -
[Jakarta Commons笔记] commons.lang.builder
2008-11-11 15:36 1102在前面的专题文章中,我们一起过了一遍org.apache.c ... -
[Jakarta Commons笔记] 代码范例 - ArrayUtils StringUtils
2008-11-11 15:34 1679数组是我们经常需要使用到的一种数据结构,但是由于Java本身 ... -
[Jakarta Commons笔记] Commons Lang
2008-11-11 15:32 2684跟java.lang这个包的作用类似,Commons Lang ... -
[Jakarta Commons笔记] 开篇
2008-11-11 13:45 1145在Java的世界,有很多(成千上万)开源的框架,有成功的,也 ...
相关推荐
apache-jakarta-commons-collections.jar apache-jakarta-commons-discovery.jar apache-jakarta-commons-email.jar apache-jakarta-commons-fileupload.jar apache-jakarta-commons-httpclient.jar apache-jakarta-...
jakarta-commons 相关依赖包,文件列表: commons-attributes-api.jar commons-attributes-compiler.jar commons-beanutils.jar commons-codec.jar commons-collections.jar commons-dbcp.jar commons-digester.jar ...
1. `commons-collections-3.1.jar`:这是Apache Commons Collections库的一个版本,它提供了大量的集合操作工具类和算法,包括对列表、映射、队列等数据结构的操作,以及一些实用的转换和比较方法。在DBCP中,这个库...
`Commons-collections-3.2-API.chm`文档详细列出了所有这些功能的API,帮助开发者理解和使用这些工具。 2. **Commons Configuration**: 这个库是为了处理配置文件而设计的,支持多种类型的配置源,如XML、属性...
【Jakarta Commons笔记】 Jakarta Commons是Apache软件基金会的一个项目集合,它提供了许多Java开发中常用的工具类和组件。这个项目旨在减少重复的工作,通过共享和重用代码,提高开发效率。Jakarta Commons包含了...
commons-collections-3.2.1-bin.zip这三个要解压出jar包,其中commons-collections-3.2.1-bin.zip这个包解压后是一个bin,还需要再对bin解压,里面是jar,我下载也搞了一阵子,后来才发现这个jar包在bin里面。
**Jakarta Commons 使用详解** Jakarta Commons 是一个 Apache 软件基金会的项目,它包含了一系列独立、可重用的 Java 类库,旨在提供常见编程任务的解决方案。这些类库覆盖了从输入输出处理到字符串操作,再到网络...
《Jakarta Commons Cookbook》是Java开发领域中一本非常实用的指南,主要涵盖了Apache Jakarta Commons组件的使用技巧和最佳实践。这本书旨在帮助开发者更好地理解和利用Jakarta Commons库中的各种工具类和模块,...
jakarta commons-lang jakarta commons-beanutils jakarta commons-collections jakarta commons-logging ezmorph
DBCP(Database Connection Pool)是Apache Jakarta项目中的一个子项目,它利用了commons-pool对象池机制来实现数据库连接的复用,从而减少创建和释放数据库连接时的开销。Tomcat,一个广泛使用的Java应用服务器,...
### Apache Jakarta Commons 使用手册知识点详解 #### 一、概述 《Apache Jakarta Commons 使用手册》是一部详细介绍Apache Jakarta Commons项目下的各种Java组件的专业书籍。该书由Will Iverson编写,旨在为...
下载地址:http://jakarta.apache.org/commons/fileupload/ 2. commons-IO 1.3.1 包 下载地址:http://jakarta.apache.org/commons/io/ 3. Commons-BeanUtils 1.7 包 下载地址:...
《Jakarta Commons Cookbook》是Java开发者的一本重要参考资料,它主要涵盖了Apache Jakarta Commons项目中的各种组件和工具的使用方法。Apache Commons是Java开发中的一个关键部分,提供了许多实用且功能强大的类库...
- `commons-collections.jar`:依赖于Apache Commons Collections库,提供了一些集合操作的高级功能,BeanUtils库在处理JavaBeans时可能会用到。 - `commons-lang.jar`:依赖于Apache Commons Lang库,提供了一些...
Jakarta commons docs API CHM 格式带索引和全文搜索,方便携带和查询。 Jakarta commons 包含很多可复用的通用组件。 commons-attributes 让开发者可以使用 C# 或 .net 样式的 attributes, 是一种运行时的 api, ...
commons.collections.bag 提供了`Bag`接口及其实现类,用于表示元素可以重复的集合。 ##### 3.2. commons.collections.buffer 提供了缓冲区实现,如`Buffer`、`SynchronizedBuffer`等。 ##### 3.3. commons....
在Java开发中,Jakarta Commons库提供了许多子项目,如IO、Lang、BeanUtils、Collections、Codec等,每个子项目都专注于特定的领域,如输入/输出操作、字符串处理、对象的创建和复制、集合的扩展以及编码解码等。...
commons-collections-2.1.1 commons-dbcp commons-fileupload commons-httpclient commons-io commons-lang commons-logging commons-logging-1.0.4 commons-pool dom4j-1.6.1 dwr ehcache-1.1 hibernate3 itext-1.3...
2. Jakarta Commons Collections Commons Collections库为Java标准集合框架提供了扩展。它包含以下组件: - Bag:存储对象的集合,但对象可以出现多次。 - Buffer:提供队列、栈和缓冲区的实现。 - BiDiMap:双向...
jakarta commons-collections 3.2.1 jakarta commons-logging 1.1.1 ezmorph 1.0.6 依赖包的下载地址: ezmorph 1.0.6: http://ezmorph.sourceforge.net/ http://morph.sourceforge.net/ jakarta commons-lang 2.4 ...