有一组这样的数据(A,A,B,B,A,C,D,A,D,这些数据是从数据库取出来,不确定具体值,这里只是假设)我现在要统计,得出结果如下:
A 1
A 2
A 3
A 4
B 1
B 2
C 1
D 1
D 2请问,这样的效果,要如何实现啊,大家指点下,紧急!~谢谢

解决方案 »

  1.   

    假设数据库表table有字段name, value.
    SELECT * FROM table ORDER BY name, value;
      

  2.   

    或者LinkedHashMap吧  更好
      

  3.   

    把(A,A,B,B,A,C,D,A,D,)从数据库里读出来  O(n)
    排序个序  A A A A B B C D D    O(n*logn);
    一个for循环  求下标,  你也可以在使用的时候求出来。 O(n)
    总共O(n+n*logn) 或O(2*n+n*logn)
      

  4.   

    用hashmap如何实现啊?能不能写一写
      

  5.   

    期待怎么用hashmap实现统计同类数据出现的次数
      

  6.   

    package Dzz;import java.util.ArrayList;
    import java.util.Collection;
    import java.util.List;
    public class TestTongJi{
        public static void main(String[] args){
         //把从数组库中读出一数据放list中接收
        
         //初始化一些数据放list中
        
         List<String> sortList = new ArrayList<String>();
         sortList.add("A");
         sortList.add("A");
         sortList.add("A");
         sortList.add("A");
         sortList.add("B");
         sortList.add("B");
         sortList.add("B");
         sortList.add("C");
         sortList.add("D");
         sortList.add("D");
         sortList.add("A");
            List<String> newList = new ArrayList<String>();
            Collection<String> c = new ArrayList<String>();
            
         for(int i = 0 ; i < sortList.size() ; i++){
         int x  = 0;
         for(int j = 0 ; j < sortList.size() ; j++){
         if(sortList.get(i).equals(sortList.get(j))){
         newList.add(String.valueOf(sortList.get(j)+String.valueOf(++x)));
         c.add(String.valueOf(sortList.get(j)));
         }
         }
         sortList.removeAll(c);
         }
         for(int m = 0 ; m < newList.size() ; m++){
         System.out.println(newList.get(m));
         }
         for(int n = 0 ; n < sortList.size() ; n++){
         System.out.println(sortList.get(n)+String.valueOf(1));
         }
        }
    }
    //可以结帐了。。