设为首页 加入收藏

TOP

Apache Commons Collections基本操作(Predicate、Transformat、Closure等)(七)
2015-11-21 01:01:37 来源: 作者: 【 】 浏览:23
Tags:Apache Commons Collections 基本操作 Predicate Transformat Closure
); List list = new ArrayList<>(); list.add("abcba"); list.add("dad"); list.add("dsfa"); //自定义的条件 Predicate pre = new Predicate () { @Override public boolean eva luate(String value) { //回文判断 return new StringBuilder(value).reverse().toString().equals(value); } }; //去重重复的过滤器 Iterator it = new FilterIterator(list.iterator(),pre); while(it.hasNext()) { System.out.println(it.next()); } } /** * 循环迭代器 */ public static void loopIt() { System.out.println("======= 循环迭代器========="); List list = new ArrayList<>(); list.add("refer"); list.add("dad"); list.add("sdafds"); Iterator it = new LoopingIterator<>(list); for(int i=0;i<5;i++) { System.out.println(it.next()); } } /** * 数组迭代器 */ public static void arrayIt() { System.out.println("=======数组迭代器========="); int[] str = {1,2,3,4,5}; //Iterator it = new ArrayListIterator<>(str); //也可以指定起始索引和结束索引 Iterator it = new ArrayListIterator<>(str,1,3); while(it.hasNext()) { System.out.println(it.next()); } } }

运行结果:

=======map迭代器=========
a-->baby
c-->doog
b-->ohyeah
=======去重迭代器=========
a
b
======= 自定义迭代器=========
abcba
dad
======= 循环迭代器=========
refer
dad
sdafds
refer
dad
=======数组迭代器=========
2
3

七、双向Map

package Collections;

import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.MapIterator;
import org.apache.commons.collections4.bidimap.DualHashBidiMap;
import org.apache.commons.collections4.bidimap.DualTreeBidiMap;

/**
 *   双向Map要求键与值都不能重复
 *   BidiMap接口          inverseBidiMap()反转方法
 *   1、DualTreeBidiMap:有序
 *   2、DualHashBidiMp:无序
 */
public class Demo07 {
    public static void main(String[] args) {
        hashMap();
        treeMap();
    }   
    /**
     * 无序的双向Map
     */ 
    public static void hashMap()
    {
        System.out.println("=======无序的双向Map=========");
        BidiMap
   
     map = new DualHashBidiMap<>(); map.put("bj", "bj@test.com"); map.put("ddssf", "ssdsfdsj@126.com"); map.put("dsf", "bfdsfdsj@qq.com"); //反转 System.out.println(map.inverseBidiMap().get("bj@test.com")); //遍历查看 MapIterator
    
      it = map.inverseBidiMap().mapIterator(); while(it.hasNext()) { String key = it.next(); String value = it.getValue(); System.out.println(key+"-->"+value); } } /** * 有序的双向Map */ public static void treeMap() { System.out.println("=======有序的双向Map========="); BidiMap
     
       map = new DualTreeBidiMap<>(); map.put("bj", "bj@test.com"); map.put("ddssf", "ssdsfdsj@126.com"); map.put("dsf", "bfdsfdsj@qq.com"); //遍历查看 MapIterator
      
        it = map.inverseBidiMap().mapIterator(); while(it.hasNext()) { String key = it.next(); String value = it.getValue(); System.out.println(key+"-->"+value); } } } 
      
     
    
   

运行结果:

=======无序的双向Map=========
bj
ssdsfdsj@126.com-->ddssf
bfdsfdsj@qq.com-->dsf
bj@test.com-->bj
=======有序的双向Map=========
bfdsfdsj@qq.com-->dsf
bj@test.com-->bj
ssdsfdsj@126.com-->ddssf

八、Bag包

package Collections;

import java.util.Iterator;
import java.util.Set;

import org.apache.commons.collections4.Bag;
import org.apache.commons.collections4.bag.HashBag;
import org.apache.commons.collections4.bag.TreeBag;

/**
 * Bag 包允许重复
 * 1.HashMap 无序
 * 2.TreeMap 有序
 * 统计单词的出现次数
 */
public class Demo08 {
    public static void main(String[] args) {
        hashBag();
        treeBag();
        wordcount();//统计单词的出现次数 
    }

    //无序的包
    public static void hashBag()
    {
        System.out.println("=====无序的包========");
        Bag
   
     bag = new HashBag<>(); bag.add("a"); bag.add("a",5); bag.remove("a",2); bag.add("b"); bag.add("c"); Itera
首页 上一页 4 5 6 7 下一页 尾页 7/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++ string 类 学习笔记 下一篇C++――2828: 素数判断

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: