Common-collections

package cn.toltech.cn.toltech.comm.collections;

import cn.toltech.cn.toltech.comm.beanutils.po.T_DynaBean;
import org.apache.commons.beanutils.BeanPropertyValueChangeClosure;
import org.apache.commons.collections.*;
import org.apache.commons.collections.bag.HashBag;
import org.apache.commons.collections.bidimap.TreeBidiMap;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.collections.map.LinkedMap;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by sz0816 on 14-10-17.
 */
public class TestCollections {

    public static void main(String []args){
        TestCollections testCollections = new TestCollections();
//        testCollections.testIterableMap();
//        testCollections.testOrderedMap();
//        testCollections.testBidiMap();
//        testCollections.testBag();
        testCollections.testCollectionUtilsAllDo();
    }

    /***
     * 使用IterableMap可以进行迭代Map集合
     */
    public void testIterableMap(){
        IterableMap map = new HashedMap();
        map.put("1","小叶子");
        map.put("2","小名");
        MapIterator mapIterator = map.mapIterator();
        while (mapIterator.hasNext()){
            System.out.println(mapIterator.next());
            System.out.println(mapIterator.getKey()+"=="+mapIterator.getValue());
        }
    }

    /***
     * 进行排好顺序的Map集合
     */
    public void testOrderedMap(){
        OrderedMap map = new LinkedMap();
        map.put("1","小叶子");
        map.put("2","小伙子");
        map.put("3","小凳子");
        System.out.println(map.nextKey("2")); //获取key为2的上一个key
        System.out.println(map.previousKey("2")); //获取key为2的下一个key
    }

    /****
     * 双向链表,可以通过key来获取value,也可以通过value来获取key
     * 可以将key和value进行交换
     */
    public void testBidiMap(){
        BidiMap bidi = new TreeBidiMap();
        bidi.put("SIX", "6");
        bidi.get("SIX");  // returns "6"
        bidi.getKey("6");  // returns "SIX"
//        bidi.removeValue("6");  // removes the mapping
//        bidi.remove("SEX"); //删除key为SEX对应的value
//        System.out.println(bidi.getKey("6"));
//        System.out.println(bidi.get("SEX"));
        BidiMap inverse = bidi.inverseBidiMap();  // returns a map with keys and values swapped
        System.out.println(inverse.get("6"));
    }

    /**
     * 可以进行包内的数据进行相加
     */
    public void testBag(){
        Bag bag = new HashBag();
        bag.add("yezi",1);
        bag.add("yezi",3);
        System.out.println(bag.getCount("yezi"));
        System.out.println(bag.remove("yezi",12));
        System.out.println(bag.getCount("yezi"));
    }

    /***
     * 配合Common-BeanUtils使用
     */
    public void testCollectionUtilsAllDo(){
        BeanPropertyValueChangeClosure closure = new BeanPropertyValueChangeClosure("name","111111");
        List<T_DynaBean> list = new ArrayList<T_DynaBean>();
        T_DynaBean bean = null;
        for(int i=0;i<10;i++){
            bean = new T_DynaBean();
            bean.setName("-"+i);
            bean.setId(i);
            list.add(bean);
        }
        CollectionUtils.forAllDo(list, closure);
        for(int i=0;i<list.size();i++){
            bean = list.get(i);
            System.out.println(bean.getName());
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值