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

java后台代码

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

package demo;
import java.util.ArrayList;
import java.util.List;
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1 = "2016-10";
String s2 = "2016-11";
String s3 = "2016-12";
String s4 = "2017-1";
List<String> sList = new ArrayList<String>();
sList.add(s1);
sList.add(s2);
sList.add(s3);
sList.add(s4);
System.out.println("初始年月sList: " + sList); Map<String,Integer> yearsDic = getYearsAndCount(sList);
System.out.println("每一年下面的月份數yearsDic: " + yearsDic); //建立年份和月份集合
List<String> yearList = new ArrayList<String>();
List<String> monthList = new ArrayList<String>(); for (int i=0; i< sList.size(); i++)
{
String year = sList.get(i).split("-")[0];
String month = sList.get(i).split("-")[1];
if(!yearList.contains(year))
{
yearList.add(year);
}
monthList.add(month);
}
System.out.println("年份集合yearList: " + yearList);
System.out.println("月份集合monthList: " + monthList);
} /*返回年份集合,每一年占多少列*/
private static Map<String, Integer> getYearsAndCount(List<String> sList)
{
Map<String, Integer> yearCount = new HashMap<String, Integer>();
for (int i = 0; i < sList.size(); i++)
{
String year = sList.get(i).split("-")[0];
if (yearCount.containsKey(year))
{
Integer count = yearCount.get(year);
yearCount.put(year, count+1);//增加列
}else {
yearCount.put(year, 1);//初始值1
}
}
return yearCount;
}
}

控制台输出:

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

/**列表
* @param page
* @throws Exception
*/
@RequestMapping(value="/list")
public ModelAndView list(Page page) throws Exception{ ModelAndView mv = this.getModelAndView(); mv.addObject("months", monthList);
mv.addObject("yearsCount", yearsDic);
mv.addObject("yearlist", yearsList); return mv;
}

放到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. strspn 和strcspn

    1.strcspn头文件:#inclued<string.h>定义函数:size_t strcspn(const char *s, const char * reject);函数说明:st ...

  2. web之Respone

    服务器处理请求的流程:  服务器每次收到请求时,都会为这个请求开辟一个新的线程.  服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体!(袋子)  服务器还会创建r ...

  3. Omi新成员omi-router正式发布

    原文链接-https://github.com/AlloyTeam/omi/blob/master/tutorial omi-router omi-router是Omi框架专属的router插件,文件 ...

  4. 一键部署ETCD集群脚本

    这里使用三个节点,系统版本为CentOS7 # vim deploy-etcd.sh #!/bin/bash set -x set -e #更改这里的IP, 只支持部署3个节点etcd集群 decla ...

  5. 多线程CountDownLatch和Join

    如果现在有五个线程A.B.C.D.E,请问如何用E线程用于统计A.B.C.D四个线程的结果? 题意需要用E线程统计A.B.C.D四个线程,也就是说E线程必须要等到前面四个线程运行结束之后才能执行.那么 ...

  6. Alamofire源码解读系列(十二)之时间轴(Timeline)

    本篇带来Alamofire中关于Timeline的一些思路 前言 Timeline翻译后的意思是时间轴,可以表示一个事件从开始到结束的时间节点.时间轴的概念能够应用在很多地方,比如说微博的主页就是一个 ...

  7. 【Scala】Scala之Packaging and Imports

    一.前言 前面介绍了Scala的Object,由于中间论文的时间耽误了些时间,接着继续学习Scala的Packaging和Imports 二.Packaging and Imports Scala的包 ...

  8. JavaScript高级内容:原型链、继承、执行上下文、作用域链、闭包

    了解这些问题,我先一步步来看,先从基础说起,然后引出这些概念. 本文只用实例验证结果,并做简要说明,给大家增加些印象,因为单独一项拿出来都需要大篇幅讲解. 1.值类型 & 引用类型 funct ...

  9. activity生命周期分析(两个activity之间跳转的生命周期执行顺序)

    NoteMainActivity点击跳转至NoteListActivity 我们都了解: 当A界面点击进入B界面时,此时         A===onPause--->onStop       ...

  10. 初识ElasticSearch

    概述 Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库. 分布式的 ...