项目中有一个需求是将年月分两行显示:

java后台代码

创建一个demo,使用Map List 拆分年月:

  1. package demo;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. public class Test {
  7. public static void main(String[] args) {
  8. // TODO Auto-generated method stub
  9. String s1 = "2016-10";
  10. String s2 = "2016-11";
  11. String s3 = "2016-12";
  12. String s4 = "2017-1";
  13. List<String> sList = new ArrayList<String>();
  14. sList.add(s1);
  15. sList.add(s2);
  16. sList.add(s3);
  17. sList.add(s4);
  18. System.out.println("初始年月sList: " + sList);
  19.  
  20. Map<String,Integer> yearsDic = getYearsAndCount(sList);
  21. System.out.println("每一年下面的月份數yearsDic: " + yearsDic);
  22.  
  23. //建立年份和月份集合
  24. List<String> yearList = new ArrayList<String>();
  25. List<String> monthList = new ArrayList<String>();
  26.  
  27. for (int i=0; i< sList.size(); i++)
  28. {
  29. String year = sList.get(i).split("-")[0];
  30. String month = sList.get(i).split("-")[1];
  31. if(!yearList.contains(year))
  32. {
  33. yearList.add(year);
  34. }
  35. monthList.add(month);
  36. }
  37. System.out.println("年份集合yearList: " + yearList);
  38. System.out.println("月份集合monthList: " + monthList);
  39. }
  40.  
  41. /*返回年份集合,每一年占多少列*/
  42. private static Map<String, Integer> getYearsAndCount(List<String> sList)
  43. {
  44. Map<String, Integer> yearCount = new HashMap<String, Integer>();
  45. for (int i = 0; i < sList.size(); i++)
  46. {
  47. String year = sList.get(i).split("-")[0];
  48. if (yearCount.containsKey(year))
  49. {
  50. Integer count = yearCount.get(year);
  51. yearCount.put(year, count+1);//增加列
  52. }else {
  53. yearCount.put(year, 1);//初始值1
  54. }
  55. }
  56. return yearCount;
  57. }
  58. }

控制台输出:

项目用的是spring4.0,添加到视图:

  1. /**列表
  2. * @param page
  3. * @throws Exception
  4. */
  5. @RequestMapping(value="/list")
  6. public ModelAndView list(Page page) throws Exception{
  7.  
  8. ModelAndView mv = this.getModelAndView();
  9.  
  10. mv.addObject("months", monthList);
  11. mv.addObject("yearsCount", yearsDic);
  12. mv.addObject("yearlist", yearsList);
  13.  
  14. return mv;
  15. }

放到jsp中显示:

Java Map List 的使用的更多相关文章

  1. java Map实现的cache manager

    一个模仿memcached的JAVA虚拟缓存工具,可以缓存java对象 import java.io.ByteArrayInputStream; import java.io.ByteArrayOut ...

  2. Java map 详解 - 用法、遍历、排序、常用API等

    尊重原创: http://www.cnblogs.com/lzq198754/p/5780165.html 概要: java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 L ...

  3. java map遍历、排序,根据value获取key

    Map 四种遍历: Map<String,String> map = new HashMap<String, String>(); map.put("one" ...

  4. java Map常用方法封装

      java Map常用方法封装 CreationTime--2018年7月16日15点59分 Author:Marydon 1.准备工作 import java.util.HashMap; impo ...

  5. Java Map获取key和value 以及String字符串转List方法

    一.问题描述 这里描述两个问题: 1.Java Map获取key和value的方法: 2.String字符串转List的方法: 二.解决方法 1.Java Map获取key和value的方法   2. ...

  6. java map添加另一个map时候 键值对的类型要一致

    java map添加另一个map时候 键值对的类型要一致

  7. java:Map借口及其子类HashMap五,identityHashMap子类

    java:Map借口及其子类HashMap五,identityHashMap子类 了解:identityHashMap子类 一般情况下,标准的Map,是不会有重复的key值得value的,相同的key ...

  8. java:Map借口及其子类HashMap四

    java:Map借口及其子类HashMap四 使用非系统对象作为key,使用匿名对象获取数据 在Map中可以使用匿名对象找到一个key对应的value. person: public class Ha ...

  9. java:Map借口及其子类HashMap二

    java:Map借口及其子类HashMap二 重点:所有的集合必须依赖Iterator输出 Map<String, Integer> map = new HashMap<String ...

  10. java:Map借口及其子类

    java:Map借口及其子类 Conllection是保存单值最大得父接口(即没有key的数据),那么Map是保存的内容是一对键值的数据,即KEY->VALUE的形式保存,如电话簿等. Map常 ...

随机推荐

  1. nginx浏览目录

    [root@localhost domains]# vi web.jd.com location / proxy_set_header X-Forwarded-For $proxy_add_x_for ...

  2. 利用echo命令实现倒计时的功能

    echo -e:启用反斜线控制字符的转换        -E:关闭反斜线控制字符的转换(预设如此)        -n:取消行末之换行符号(与 -e 选项下的 \c 字符同意 -e参数下的控制参数 \ ...

  3. Git 远程分支的pull与push

    Git 远程分支的pull与push 远程分支信息查看 git branch -r #查看远程分支 git branch -a #查看所有分支,本地和远程 git remote show [remot ...

  4. 微信小程序评分功能

    很多做过电商项目的朋友会经常用到评分的功能,我这里正好写了一个例子,发出来分享一下: 我写的是5分满分制的,首先,准备3个图片, ,像这样的,分别代表分数为0,0.5,1 时的状态, 效果图:(以3. ...

  5. Selenium测试专项二班隆重开班

    Selenium测试专项二班隆重开班 应广大测试技术人员要求,以及企业技术需求.Selenium提前一周开课了,只针对合作的每家企业提供1-2个参训名额.预计培训60人次.但报名人数却远远超出我们预期 ...

  6. Android在listview添加checkbox实现单选多选操作问题

    android根据View的不同状态更换不同的背景http://www.eoeandroid.com/thread-198029-1-1.html android 模仿朋友网推出的菜单效果[改进版]h ...

  7. svn检出服务器项目中出现的could not connect to server

    今天来新同事,新配的电脑装上SVN,Myeclipse后,检出服务器的项目老是出现文件不存在,could not connect to server.最后上网搜了下, 1.先用电脑ping服务器,看网 ...

  8. 《Algorithms Unlocked》读书笔记1——循环和递归

    <Algorithms Unlocked>是 <算法导论>的合著者之一 Thomas H. Cormen 写的一本算法基础. 书中没有涉及编程语言,直接用文字描述算法,我用 J ...

  9. java 基础知识六 字符串2

    java  基础知识六  字符串2 1.String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为final方法 . String 是不可变对象,也就是一旦创建,那么整 ...

  10. vue项目目录介绍

    Vue项目目录 初始化项目 vue init webpack []projectname] cd [projectname] npm install vue run dev 目录树 +---build ...