`
phantom
  • 浏览: 163238 次
社区版块
存档分类
最新评论

CountSortTool

阅读更多
java 代码
  1. package org.jh.app.count;   
  2.   
  3. import java.util.ArrayList;   
  4. import java.util.Collections;   
  5. import java.util.List;   
  6. import java.util.Set;   
  7.   
  8. import org.apache.commons.collections.Bag;   
  9. import org.apache.commons.collections.BagUtils;   
  10. import org.apache.commons.collections.bag.HashBag;   
  11.   
  12. public class CountSortTool {   
  13.     static public class Sort implements Comparable<Sort> {   
  14.         Object key;   
  15.   
  16.         int num = 1;   
  17.   
  18.         Sort(Object key) {   
  19.             this.key = key;   
  20.         }   
  21.   
  22.         public Sort(Object o, int count) {   
  23.             this.key = o;   
  24.             num = count;   
  25.         }   
  26.   
  27.         public String toString() {   
  28.             return key + ":" + num + "\n";   
  29.         }   
  30.   
  31.         public boolean equals(Object obj) {   
  32.             System.out.println("equals");   
  33.             if (this == obj)   
  34.                 return true;   
  35.             if (obj instanceof Sort) {   
  36.                 Sort s = (Sort) obj;   
  37.                 if (s.key.equals(s.key)) {   
  38.                     num++;   
  39.                     s.num++;   
  40.                     return true;   
  41.                 }   
  42.             }   
  43.             return false;   
  44.         }   
  45.   
  46.         public Object getKey() {   
  47.             return key;   
  48.         }   
  49.   
  50.         public void setKey(Object key) {   
  51.             this.key = key;   
  52.         }   
  53.   
  54.         public int getNum() {   
  55.             return num;   
  56.         }   
  57.   
  58.         public void setNum(int num) {   
  59.             this.num = num;   
  60.         }   
  61.   
  62.         public int compareTo(Sort o) {   
  63.             return -num + o.num;   
  64.         }   
  65.   
  66.     }   
  67.     public void push(String key) {   
  68.         bag.add(key);   
  69.     }   
  70.   
  71.     Bag bag = BagUtils.typedBag(new HashBag(), String.class);   
  72.   
  73.     public List<Sort> sort() {   
  74.   
  75.         Set objs = bag.uniqueSet();   
  76.         List<Sort> listR = new ArrayList<Sort> ();   
  77.         for (Object o : objs) {   
  78.             listR.add(new Sort(o, bag.getCount(o)));   
  79.         }   
  80.         Collections.sort(listR);   
  81.         return listR;   
  82.     }   
  83. }   
分享到:
评论
1 楼 phantom 2007-06-28  
package org.jh.app.count;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;

import org.apache.commons.collections.Bag;
import org.apache.commons.collections.BagUtils;
import org.apache.commons.collections.bag.HashBag;

public class CountSortTool {
	static public class Sort implements Comparable<Sort> {
		Object key;

		int num = 1;

		Sort(Object key) {
			this.key = key;
		}

		public Sort(Object o, int count) {
			this.key = o;
			num = count;
		}

		public String toString() {
			return key + ":" + num + "\n";
		}

		public boolean equals(Object obj) {
			System.out.println("equals");
			if (this == obj)
				return true;
			if (obj instanceof Sort) {
				Sort s = (Sort) obj;
				if (s.key.equals(s.key)) {
					num++;
					s.num++;
					return true;
				}
			}
			return false;
		}

		public Object getKey() {
			return key;
		}

		public void setKey(Object key) {
			this.key = key;
		}

		public int getNum() {
			return num;
		}

		public void setNum(int num) {
			this.num = num;
		}

		public int compareTo(Sort o) {
			return -num + o.num;
		}

	}
	public void push(String key) {
		bag.add(key);
	}

	Bag bag = BagUtils.typedBag(new HashBag(), String.class);

	public List<Sort> sort() {

		Set objs = bag.uniqueSet();
		List<Sort> listR = new ArrayList<Sort> ();
		for (Object o : objs) {
			listR.add(new Sort(o, bag.getCount(o)));
		}
		Collections.sort(listR);
		return listR;
	}
}

相关推荐

Global site tag (gtag.js) - Google Analytics