【java】用HashMap计数,用TreeSet排序

 1 package com.tn.hashMap;
 2
 3 import java.util.HashMap;
 4 import java.util.TreeSet;
 5
 6 public class HashMapDemo {
 7     public static void main(String[] args){
 8
 9         String str="eeeeaccbbddddffffff";
10         HashMap<String,Integer> hashMap=new HashMap<String,Integer>();
11         for(int i=0;i<str.length();i++){
12             if(!hashMap.containsKey(str.substring(i, i+1))){
13                 hashMap.put(str.substring(i, i+1), 1);
14             }else{
15                 hashMap.put(str.substring(i,i+1), hashMap.get(str.substring(i, i+1))+1);
16             }
17         }
18
19         TreeSet<T> treeSet=new TreeSet<T>();
20         for(String key:hashMap.keySet()){
21             T t=new T(key,hashMap.get(key));
22             treeSet.add(t);
23         }
24         System.out.println(treeSet);
25     }
26 }
27
28 class T implements Comparable<T>{
29     private String value;
30     private Integer count;
31
32     public T(String value, Integer count) {
33         super();
34         this.value = value;
35         this.count = count;
36     }
37
38     public String getValue() {
39         return value;
40     }
41
42     public void setValue(String value) {
43         this.value = value;
44     }
45
46     public Integer getCount() {
47         return count;
48     }
49
50     public void setCount(Integer count) {
51         this.count = count;
52     }
53
54     @Override
55     public String toString() {
56         return value+"出现"+count+"次。";
57     }
58
59     @Override
60     public int compareTo(T o) {
61         if(this.count!=o.count)
62             return this.count-o.count;//以出现次数排序
63         else
64             return this.value.compareTo(o.value);//出现次数相同以字母顺序排序
65     }
66
67 }

时间: 2024-10-25 15:33:59

【java】用HashMap计数,用TreeSet排序的相关文章

java根据HashMap中的值将其元素排序

思路:HashMap或Map本身没有排序功能,若要进行较轻松的排序,可利用ArrayList中的sort方法 例子: import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; public class MapSorter { public static void main(String[] args)

Java如何对HashMap按值进行排序

HashMap的值是没有顺序的,它是按照key的HashCode来实现的.对于这个无序的HashMap我们要怎么来实现排序呢?(TreeMap类似) import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.ut

[Java]HashMap的两种排序方式

先将 Map 中的 key 和 value 全部取出来封装成 JavaBea 数组,再将这个数组排序,排序完成后,重新写回 Map 中,写回时采用 LinkedHashMap 可以保证迭代的顺序.下面的代码可以参考一下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

【Simple Java】HashMap常用方法

当需要对元素进行计数时,HashMap非常有用,如下例子,统计一个字符串中每个字符出现的次数: package simplejava; import java.util.HashMap; import java.util.Map.Entry; public class Q12 { public static void main(String[] args) { HashMap<Integer, Integer> countMap = new HashMap<Integer, Intege

Java实现8中常用的排序

直接插入排序 import java.util.HashMap; /** * 直接插入排序 * @author HHF * 2014年3月19日 */ public class InsertSort { private static int contrastCount = 0;//对比次数 private static int swapCount = 0;//交换次数 public static void main(String[] args) { System.out.println("直接插

java中 HashMap和Hashtable,list、set和map 的区别

摘自: http://blog.chinaunix.net/uid-7374279-id-2057584.html HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable.HashMap允许将null作为一个entry的key或者value,而Hashtable不允许.HashMap把Hashtable的contains方法去掉了,改成contains

【Simple Java】HashMap vs TreeMap vs Hashtable vs LinkedHashMap

Map是一个重要的数据结构,本篇文章将介绍如何使用不同的Map,如HashMap,TreeMap,HashTable和LinkedHashMap. Map概览 Java中有四种常见的Map实现,HashMap,TreeMap,HashTable和LinkedHashMap,我们可以使用一句话来描述各个Map,如下: HashMap:基于散列表实现,是无序的: TreeMap:基于红黑树实现,按Key排序: LinkedHashMap:保存了插入顺序: Hashtable:是同步的,与HashMa

Java中HashMap和TreeMap的区别深入理解(转载)

首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫 做key,其对应的对象叫做value.这就是我们平时说的键值对. HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应 该使用TreeMap(HashMap中元素的排列顺序是不固定的). HashMap 非线程安全 TreeMap 非线程安全 线程安全 在Java里,线程安全一

Java中HashMap和TreeMap的区别深入理解

首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.这就是我们平时说的键值对. HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的). HashMap 非线程安全 TreeMap 非线程安全 线程安全 在Java里,线程安全一般体