运行结果:
=======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