Commons Collections - Transformer组 补充

// transformer setup

        Transformer developerTransformer = new Transformer() {

            public Object transform(Object obj) {

                Applicant app = (Applicant) obj;

                return new Employee(

                    app.getName(), app.getAge(), new Date(), "E4", 2000

                );

            }

        };

        Transformer testerTransformer = new Transformer() {

            public Object transform(Object obj) {

                Applicant app = (Applicant) obj;

                return new Employee(

                    app.getName(), app.getAge(), new Date(), "E4", 2000

                );

            }

        };

        Transformer pmTransformer = new Transformer() {

            public Object transform(Object obj) {

                Applicant app = (Applicant) obj;

                return new Employee(

                    app.getName(), app.getAge(), new Date(), "E5", 3000

                );

            }

        };

        Transformer[] transformers = new Transformer[] {

            developerTransformer,

            testerTransformer,

            pmTransformer

        };

       

        // transform

        Transformer employTransformer = new SwitchTransformer(

            checkApplyFor, transformers, null

        );

        Collection employed = CollectionUtils.collect(appList, employTransformer);

       

        // output

        System.out.println("Applicants: ");

        Iterator iter1 = appList.iterator();

        while (iter1.hasNext()) {

            System.out.println(iter1.next());

        }

        System.out.println("Employed: ");

        Iterator iter2 = employed.iterator();

        while (iter2.hasNext()) {

            System.out.println(iter2.next());

        }

 

        System.out.println(StringUtils.repeat("=", 40));

    }

 

}

 

以下是运行结果:

 

========= demoTransformerUsage =========

Applicants:

Applicant[name=Tony,age=26,applyFor=Developer]

Applicant[name=Michelle,age=24,applyFor=Tester]

Applicant[name=Jack,age=28,applyFor=Project Manager]

Employed:

Employee[name=Tony,age=26,dateJoined=2005-08-05,grade=E4,salary=2000.0]

Employee[name=Michelle,age=24,dateJoined=2005-08-05,grade=E4,salary=2000.0]

Employee[name=Jack,age=28,dateJoined=2005-08-05,grade=E5,salary=3000.0]

========================================

 

我们首先定义一组Predicate,用于在SwitchTransformer中判断采用那个具体的Transformer,这个具体的Transformer也是通过数组同时传递给SwitchTransformer的构造方法的。不同的Predicate可以有不同的实现,不同的Transformer也可以有不同的实现,因为它们之间实际上完全是相互独立的。这就使我们有效的分离了逻辑和具体业务。

 

 

 

### 回答1: commons-collections是Apache Commons项目中的一个子项目,提供了一扩展和增强了Java集合框架的工具类。commons-collections 4.1 是该项目的一个版本。 commons-collections 4.1jar是一个Java归档文件(jar),其中包含了commons-collections 4.1版本的源代码和编译后的类文件。通过将该jar文件添加到Java项目的类路径中,开发人员可以使用commons-collections提供的丰富功能来简化集合操作的编写。 该jar文件可以通过将其下载到本地计算机,然后在项目中导入jar包来使用。导入后,开发人员可以使用 commons-collections提供的各种集合类和算法,如List、Set、Map、Queue、Bag等,来处理和操作集合数据。通常,通过导入commons-collections jar包后,开发人员可以直接使用其提供的类,而不需要自己编写复杂的集合操作代码。 commons-collections的jar文件具有良好的移植性,可以在不同的Java平台上使用,例如Java SE、Java EE等。它还具有广泛的应用范围,可用于各种Java项目,包括Web应用程序、桌面应用程序、企业应用程序等。 总结来说,commons-collections 4.1jar是一个包含了commons-collections 4.1版本源代码和编译后的类文件的Java归档文件,它为开发人员提供了丰富的集合操作工具类,可以简化和加速Java项目中的集合操作。 ### 回答2: commons-collections4.1.jar 是一个开放源代码的 Java 类库,它提供了一实用的集合类和算法,以增强 Java 标准库中集合类的功能。 commons-collections4.1.jar 包含了各种实现了 List、Set、Queue、Map 等接口的集合类,比如 ArrayList、LinkedList、HashSet、TreeSet、HashMap 等。这些集合类提供了更多的功能与选项,满足了不同场景下的需求。 此外,commons-collections4.1.jar 还提供了一些扩展的数据结构,如 MultiHashMap、MultiValueMap 等。这些数据结构允许一个键对应多个值,提供了更灵活的数据存储方式。 commons-collections4.1.jar 还包含了一些实用的算法,如排序、查找、遍历等。通过这些算法,我们可以更方便地对集合进行操作和处理。 commons-collections4.1.jar 提供了一些实用的工具类,如 Predicate、Transformer、Comparator 等。这些工具类可以帮助我们更方便地进行集合操作,比如筛选、映射、比较等。 总之,commons-collections4.1.jar 是一个非常实用的 Java 类库,提供了丰富的集合类、算法和工具,能够大大提高开发效率,简化代码编写。无论是在开发大型应用程序还是小型项目中,都可以通过引入 commons-collections4.1.jar 来充分利用其提供的功能和特性。 ### 回答3: commons-collections4.1.jar是Apache Commons项目的一部分,是一个Java集合框架库。该库提供了一扩展和增强了Java集合框架的类和接口。 commons-collections4.1.jar包含了一些实用的类和接口,可以用于处理各种不同类型的集合。它提供了许多方便的方法和工具类,可以简化集合操作的开发过程。 该库包含的一些主要功能有: 1. 扩展集合类:commons-collections4.1.jar提供了一些扩展了Java集合类的类,例如改进了性能和功能的List、Set、Map等。 2. 集合工具类:该库还提供了一些实用的集合工具类,例如CollectionUtils和ListUtils等,可以方便地对集合进行操作和处理。 3. 各种集合实现:commons-collections4.1.jar还提供了一些特殊的集合实现,例如CircularFifoQueue、ListOrderedMap等,可以满足不同场景下的需求。 4. 强大的迭代器包装器:该库还提供了一些强大的迭代器包装器,例如TransformedIterator和FilterIterator等,可以对集合的元素进行处理和过滤。 通过使用commons-collections4.1.jar,开发者可以更高效地处理和操作集合,减少开发时间和工作量。这个库已经在许多Java项目中得到了广泛使用,并且由于其丰富的功能和高效的性能而受到开发者的青睐。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值