`
ahua186186
  • 浏览: 562032 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

计算list中每个值的数量 并可根据需要输出-->值的数量最多的前面几位

 
阅读更多
package com.ylink.transfer;

import java.util.ArrayList;
import java.util.Collections;
import java.util.IdentityHashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Test {

    List<String> list = new ArrayList<String>();
    List<Integer> list_key = new ArrayList<Integer>();
    List<Integer> list_key_8 = new ArrayList<Integer>();
    IdentityHashMap map = new IdentityHashMap<String, String>();
    /**
     * 计算list中每个值的数量
     * 并可根据需要输出-->值的数量最多的前面几位
     */
    private void count()
    {
    list.add("1");
         list.add("1fds");
         list.add("2");
         list.add("2fd");
         list.add("3fds");
         list.add("3fds");
         list.add("3fds");
         list.add("4fds");
         list.add("4");
         list.add("4");
         list.add("4");
         list.add("4");
         list.add("4");
         list.add("2");
         list.add("2");
         list.add("2");
         list.add("2");
         list.add("1");
         list.add("5");
         list.add("6");
         list.add("7");
         list.add("8");
         list.add("9");
        
        Collections.sort(list);
        /************************start***************************************/
      
        for(int i=0;i<list.size();i++)
        {
        String s= list.get(i);
            int begin = list.indexOf(s);
            int end = list.lastIndexOf(s);
            int key = end - begin + 1;// 计算每个值的数量
         
            boolean canadd = true;
            if(i>0){
            if(s.equals(list.get(i-1))){
            canadd = false;
            }
            }
            if(canadd){
            list_key.add(key);
            map.put(String.valueOf(key), s);
           
            }
            //System.out.println("字母'"+ s + "'有:"+(end - begin + 1)+"个");
        }
        Collections.sort(list_key);
        if(list_key.size()>=8){
        for(int j=list_key.size()-1;j>list_key.size()-9;j--){
        list_key_8.add(list_key.get(j));
        }
        }
          int n = 0;
          for(int m=0;m<list_key_8.size();m++){
          int temp_key = list_key_8.get(m);
          if(m>0){
          if(list_key_8.equals(list_key_8.get(m-1))==false){
          Set<Map.Entry<String, String>> allSet = map.entrySet();              
              Iterator<Map.Entry<String, String>> iter = allSet.iterator();
          while (iter.hasNext()) {              
              Map.Entry<String, String> me = iter.next();// 每个对象都是Map.
              String key = me.getKey();
              if(key.equals(String.valueOf(temp_key))){
              System.out.println(me.getKey()  + " --> " + me.getValue());
              n++;
              if(n==8){
              break;
              }
        }
        }
          }
          }
              if(n==8){
              break;
              }
          // 输出key和value 
        }

    }
    public static void main(String[] args) {
       new Test().count();
    }
}
分享到:
评论

相关推荐

    freemarker总结

    list指令是一个迭代输出指令,用于迭代输出数据模型中的集合,list指令的语法格式如下: &lt;#list sequence as item&gt; ... &lt;/#list&gt; 上面的语法格式中,sequence就是一个集合对象,也可以是一个表达式,但该表达式将返回...

    上海电机学院C语言实训答案

    将需要加密的一行文字输入加密程序,程序根据加密表中的对应关系,可以简单地将输入的文字加密输出,对于表中未出现的字符则不加密。 运行示例: 输入:lajgdike,w 输出:ldjg,abice (12)编写程序验证以下说法:...

    Oracle9i的init.ora参数中文说明

    MTS_MULTIPLE_LISTENERS=TRUE, 否则每个条目都必须有一个独立的相邻值。此参数自 8.1.3 版起已废弃 语法 : (ADDRESS=(PROTOCOL=tcp)(HOST=myhost)(PORT=7002)) 默认值 : NULL mts_dispatchers: 说明 : 为设置使用...

    (重要)AIX command 使用总结.txt

    H -&gt;显示列输出前面的头部分,即输出中包括列头部分 P -&gt;列出预定义设备对象类中设备的有关信息,即支持的设备,缺省显示信息包括class,type,subclass,description r ColumnName -&gt;指定列名 S State -&gt;列出指定状态...

    2021-2022计算机二级等级考试试题及答案No.12759.docx

    根据计算规则,循环不会执行(因为10减去任何倍数的3都不会小于等于0),所以循环的执行次数为 **0**。 ### 2. 数据类型与存储空间 **题目描述:** 存储以下几种数据类型时,哪种数据类型占用的存储空间最大? - 0...

    grub4dos-V0.4.6a-2017-02-04更新

    使用command --set-ext设置,每个扩展名使用";"分隔 例子: command --set-ext=.g4b;.g4e 执行时可以不用输入扩展名,比如输入test如果当前路径下有一个test.g4b就会自动使用。 2013-10-17 1.修改代码支持...

    java中数据结构应用实例

    二叉树是每个节点最多有两个子节点的树,Java中的TreeSet和TreeMap分别实现了Set和Map接口,它们基于红黑树算法,保证了操作的平衡性和效率。此外,还有自平衡的AVL树和B树等。 通过理解并熟练掌握这些数据结构,...

    C# 任务管理器及控制台获取CPU占用率前3位进程

    2. **计算CPU占用率**:每个Process对象都有Process.TotalProcessorTime属性,表示该进程自启动以来占用的CPU时间。通过与System.Diagnostics.Process.GetCurrentProcess().TotalProcessorTime比较,可以计算出进程...

    数据结构知识点整理

    二叉树是一种特殊的树形结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。 **二叉树的性质** 1. 在二叉树的第k层上至多有2^(k-1)个结点(k≥1)。 2. 深度为m的二叉树至多有2^m - 1个结点(m≥1)。 3. ...

    360校园招聘2015届技术类笔试题

    每个人从篮子里抽出两个小球,请问至少需要多少个人抽球,才能保证有两个人抽到的小球颜色相同? **解析**: 此题属于抽屉原理的应用。 - **解题思路**: - 抽取两个不同颜色的小球的组合方式共有\(C_5^2 = 10\)种...

    C++MFC教程

    而每个窗口都会有自己的窗口过程,所以用户的输入就会被正确的处理。例如有两个窗口共用一个窗口过程代码,你在窗口一上按下鼠标时消息就会通过窗口一的句柄被发送到窗口一而不是窗口二。 5、示例:下面有一段伪代码...

    我的黑客学习笔记

    - **功能说明:** 用来显示数据包到达目标主机所经过的路径,并显示到达每个节点的时间。 - **参数说明:** - `-d`:不将IP地址解析为主机名。 - `-h maximum_hops`:定义搜索的最大跃点数。 - `-j host-list`:...

    java词汇大全

    - **Hamilton回路(Hamiltonian Cycle)**: 图中是否存在一条路径,经过每个顶点恰好一次。 - **图的划分(Graph Partition)**: 将图的顶点分为几个部分,使得某些条件得到满足。 - **点染色(Vertex Coloring)**: 使用...

    opengl es 工作日志

    - `attrib_list`是一个由EGL配置属性组成的数组,每个属性都有对应的值,例如`EGL_RED_SIZE`用于指定颜色深度中的红色位数。 - `eglChooseConfig`根据`attrib_list`筛选出符合条件的配置项,最多返回`config_size`...

    net学习笔记及其他代码应用

    6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理? 答 : this.Server.Transfer 7.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty? ...

    数据结构与算法分析—c语言描述_课后答案

    - **二叉树**(Binary Tree):每个节点最多有两个子节点的树形结构。 - **搜索树**(Search Tree):能够高效支持查找、插入和删除操作的树形结构。 - **平衡树**(Balanced Tree):通过保持树的高度尽可能小来...

Global site tag (gtag.js) - Google Analytics