commons包里面的Bag类,可以实现数组的有序和无序封装,并对内容做统计判断。代码依赖Jar包:commons-collections4-4.0-alpha1.jar
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;
//commons-collections4-4.0-alpha1.jar
public class BagDemo {
public static void main(String[] args) {
treeBag();
hashBag();
uniqueSet();
}
/**有序*/
public static void treeBag(){
System.out.println("=====有序的包====");
Bag<String> bag =new TreeBag<String>();
bag.add("a");
bag.add("a",5);
bag.remove("a", 2);
bag.add("b");
bag.add("c");
Iterator<String> it =bag.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
/**无序*/
public static void hashBag(){
System.out.println("=====无序的包====");
Bag<String> bag =new HashBag<String>();
bag.add("a");
bag.add("a",5);
bag.remove("a", 2);
bag.add("b");
bag.add("c");
Iterator<String> it =bag.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
/**统计次数*/
public static void uniqueSet(){
String str ="this is a cat and that is a mice where is the food";
String[] strArray =str.split(" ");
Bag<String> bag =new TreeBag<String>();
for(String temp:strArray){
bag.add(temp);
}
System.out.println("====统计次数===");
Set<String> keys =bag.uniqueSet();
for(String letter:keys){
System.out.print(letter+":"+bag.getCount(letter));
}
//a:2,and:1,cat:1,food:1,is:3,mice:1,that:1,the:1,this:1,where:1
}
}