package htmlunit;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Comparator;

public class MapSort {
	/**
	 * 传入一个字符串数组 统计字符串出现次数 并按出现的次数 由高到低排序 输出
	 * 
	 * @param content
	 * @return
	 */
	public static String[] counter(String[] content) {

		int counter = 0;
		Map<String, Integer> map = new HashMap<String, Integer>();
		for (int i = 0; i < content.length; i++) {
			if (map.containsKey(content[i])) {
				counter = map.get(content[i]);
				map.put(content[i], ++counter);
			} else {
				map.put(content[i], 1);
			}
		}

		@SuppressWarnings("rawtypes")
		Map.Entry[] set = MapSort.getSortedHashtableByValue(map);

		String[] str = new String[set.length];
		for (int i = 0; i < str.length; i++) {
			str[i] = set[i].getKey().toString();
		}

		return str;

	}

	/**
	 * @param h
	 * @return 实现对map按照value降序排序
	 */
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public static Map.Entry[] getSortedHashtableByValue(Map h) {
		
		Set set = h.entrySet();              //返回此映射中包含的映射关系的 Set 视图
		Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set.size()]);      //返回一个包含set中所有元素的数组
		Arrays.sort(entries, new Comparator() {         //实现entries按Value降序排序
			public int compare(Object arg0, Object arg1) {
				Long key1 = Long.valueOf(((Map.Entry) arg0).getValue()
						.toString());
				Long key2 = Long.valueOf(((Map.Entry) arg1).getValue()
						.toString());
				return key2.compareTo(key1);
			}
		});
		return entries;
	}

//	public static void main(String[] args) throws Exception {
//		
//		 Indexcs index = new Indexcs();
//		
//		String b="通过Buffer的部分引用,我们可以得到矩阵的部分引用,比如我们可以利用这个来获取一个像素点的数据数组,而改变这个数组中的值," +
//				"相应的矩阵数据也会改变;再比如我们可以以其他数据类型的方式读取数据。而这些对于普通Array是不能实现的。下面我们来看一下at方法的实现";
//		System.out.println(b);
//		System.out.println("===========================================");
//		String [] a =index.analyze(b);
//	
//		for(int i=0;i<a.length;i++)
//		{
//			System.out.print(a[i]+" ");
//		}
//		System.out.println();
//		System.out.println("==========================================");
//		String []value=MapSort.counter(a);
//		for(int i=0;i<value.length;i++)
//		{
//			System.out.print(value[i]+" ");
//		}
//	}



}
最近下载更多
dscing  LV8 2018年8月21日
故事_sun  LV26 2018年5月25日
watfgzs  LV21 2014年11月12日
AXIN  LV36 2014年1月21日
最近浏览更多
wahtloop 2020年4月24日
暂无贡献等级
lllpppwww  LV5 2020年4月4日
小王wang  LV10 2020年1月17日
在雨中笑着哭  LV2 2019年4月2日
start111  LV9 2019年3月11日
彬之之之之的爱情  LV3 2018年11月16日
fly666  LV11 2018年9月27日
dscing  LV8 2018年8月21日
fangyilin  LV9 2018年7月20日
tangjun  LV17 2018年7月11日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友