Java map list 解决复杂表格的数据问题


加入给你一个表 包含三个字段  让你做这样的表格怎么做呢?

并且根据模块名 和时间去重 展示一下表格数据


java客户端写了一个小dome  大家看下

public class bean {
	
	/**日期*/
	private String fdate;
	/**点击率*/
	private String ctr;
	/**模块名称*/
	private String module;
	public String getFdate() {
		return fdate;
	}
	public void setFdate(String fdate) {
		this.fdate = fdate;
	}
	public String getCtr() {
		return ctr;
	}
	public void setCtr(String ctr) {
		this.ctr = ctr;
	}
	public String getModule() {
		return module;
	}
	public void setModule(String module) {
		this.module = module;
	}
	
	

}

所用到的bean 


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class test {
	
	public static void main(String[] args) {
		
	
		bean b=new  bean();
		b.setCtr("3.2");
		b.setFdate("2015-08-26");
		b.setModule("模块1");
		bean c=new  bean();
		c.setCtr("3.012");
		c.setFdate("2015-08-24");
		c.setModule("模块三");
		bean d=new  bean();
		d.setCtr("3.01");
		d.setFdate("2015-08-26");
		d.setModule("模块二");
		bean a=new  bean();
		a.setCtr("6.5");
		a.setFdate("2015-08-26");
		a.setModule("模块5");
		bean e=new  bean();
		e.setCtr("7.012");
		e.setFdate("2015-08-25");
		e.setModule("模块一");
		bean f=new  bean();
		f.setCtr("7.012");
		f.setFdate("2015-08-25");
		f.setModule("模块一");
		List<bean> list=new ArrayList<bean>();	
		list.add(a);
		list.add(d);
		list.add(b);
		list.add(c);
		list.add(e);
		list.add(f);
		Map<String,bean> map=new  HashMap<String, bean>();
		 List<String> fdate=new ArrayList<String>();
		 List<String> module=new ArrayList<String>();
		 List<List<bean>> result =new ArrayList<List<bean>>();
		for (int i = 0; i < list.size(); i++) {
			bean l=list.get(i);
			if(!module.contains(l.getModule())){
			module.add(l.getModule());
			}
			if(!fdate.contains(l.getFdate())){
			fdate.add(l.getFdate());
			}
			map.put(l.getModule()+":"+l.getFdate(), l);
			
		}
		for(String date:fdate){
			List<bean> temp
			=new  ArrayList< bean>();
			for(String no:module){
				if(map.containsKey(no+":"+date)){
				temp.add(map.get(no+":"+date));
				}else{
					temp.add(new bean());
				}
			}
			result.add(temp);
		}
	  for(String name:module){
		  //遍历模块名   
		  System.out.print("\t\t"+name+"\t");
	  }
	  System.out.println();
	  int index=0;
		for(List<bean> x:result){
			System.out.print(fdate.get(index)+":");
			for(bean y:x){
				System.out.print("\t\t"+y.getCtr());
				
			}
			System.out.println("\n");
			index++;
		}
		
			
		
		

	}

}

下面是运行的结果 


模块5 模块二 模块1 模块三 模块一 
2015-08-26: 6.53.01 3.2null null


2015-08-24: nullnull null3.012 null

2015-08-25: nullnull nullnull 7.012



  思路首先遍历 模块名  因为模块名是横向遍历的 所以要单独做一个list 

然后在遍历纵坐标,








要在Java中使用Layui数据表格,需要进行以下步骤: 1. 引入Layui的相关文件(CSS和JavaScript)到HTML页面中。 2. 在HTML页面中定义一个table元素,并使用Layui的class(例如:class="layui-table")使其变成Layui数据表格。 3. 在Java代码中,定义一个数据集(例如List),并将数据集中的数据转换成Layui数据表格所需的JSON格式数据。 4. 将JSON格式数据返回到HTML页面中,使用Layui的渲染函数(例如:layui.table.render)将JSON数据渲染到Layui数据表格中。 下面是一个示例代码,将Java中的数据集转换成Layui数据表格所需的JSON格式数据,并将其渲染到HTML页面中的Layui数据表格中: ```java import com.alibaba.fastjson.JSON; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class TableData { public static void main(String[] args) { // 定义数据List<Map<String, Object>> list = new ArrayList<>(); Map<String, Object> map1 = new HashMap<>(); map1.put("id", 1); map1.put("name", "张三"); map1.put("age", 20); list.add(map1); Map<String, Object> map2 = new HashMap<>(); map2.put("id", 2); map2.put("name", "李四"); map2.put("age", 25); list.add(map2); // 将数据集转换成JSON格式数据 String json = JSON.toJSONString(list); // 将JSON格式数据返回到HTML页面中,并使用Layui的渲染函数将其渲染到Layui数据表格中 String script = "<script>\n" + "layui.use('table', function(){\n" + " var table = layui.table;\n" + " table.render({\n" + " elem: '#test',\n" + " cols: [[\n" + " {field: 'id', title: 'ID'},\n" + " {field: 'name', title: '姓名'},\n" + " {field: 'age', title: '年龄'}\n" + " ]],\n" + " data: " + json + "\n" + " });\n" + "});\n" + "</script>"; System.out.println(script); } } ``` 在上面的示例代码中,我们先定义了一个数据集(List<Map<String, Object>>),然后将数据集转换成JSON格式数据,并将其作为参数传递给Layui的渲染函数(table.render)。在渲染函数中,我们指定了要渲染的HTML元素(elem)、表格列的定义(cols)和要渲染的数据(data)。最后,我们将整个Layui数据表格渲染的HTML代码作为字符串返回。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值