通过map可以避免创建实体
来源:互联网 发布:win10仿mac主题 编辑:程序博客网 时间:2024/05/17 06:54
并不是说不要创建实体,而是有时并没必要创建
例如:从磁盘上读取文件在页面上显示,磁盘上得文件名字是201101.xls,那么在页面上显示时,需要显示2011年1月
我们做法是:先读取出文件保存在list中,但是文件名转换如何做呢?
通常可以创建个file实体,里面两个字段,name_file,name_show
但是我们还可以通过map来实现
原理,采用json的数据格式 [name_file:201101.xls,name_show:2011年1月]
class BusinessTypeSumReportAction{
public static List getFiles(String dirname) throws Exception {
List file_names = null;
File dir = new File(dirname);
if (dir.exists()) {
file_names = new ArrayList();
File[] files = dir.listFiles();
// 排序
Arrays.sort(files,
new BusinessTypeSumReportAction.CompratorByLastModified());
for (int i = 0; i < files.length; i++) {
String filename = files[i].getName();
if (filename.matches("^.+\\.xls$")&&filename.matches("2[0-9]{5}+\\.xls$")) {
Map<String, String> map = new HashMap<String, String>();
String year = filename.substring(0, 4)+"年";
String month = filename.substring(4,6)+"月";
if(month.startsWith("0"))month = month.substring(1,3);
map.put("name_file", files[i].getName());
map.put("name_show", year+month);
file_names.add(map);
}
}
} else {
System.out.println("该目录没有任何文件信息!");
}
return file_names;
}
public static List<Map<String, List>> getFiles2(String dirname)
throws Exception {
List file_names = null;
List<Map<String, List>> listMap = new ArrayList<Map<String, List>>();
Map<String, List> map = new HashMap<String, List>();
File dir = new File(dirname);
String tempyear = "";
String year = "";
if (dir.exists()) {
file_names = new ArrayList();
File[] files = dir.listFiles();
// 排序
Arrays.sort(files,
new BusinessTypeSumReportAction.CompratorByLastModified());
for (int i = 0; i < files.length; i++) {
// 取出文件名年份,同一年份的封装到一个list中,数据结构为json类似
String filename = files[i].getName();
if (filename.matches("^.+\\.xls$")) {
year = filename.substring(0, 5);
file_names.add(files[i].getName());
if (!tempyear.equals(year)) {
map.put(year, file_names);
}
tempyear = year;
}
}
} else {
System.out.println("该目录没有任何文件信息!");
}
return file_names;
}
private static String format(String format, Date date) {
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
return dateFormat.format(date);
}
private static class CompratorByLastModified implements Comparator<File> {
public int compare(File f1, File f2) {
long diff = f1.lastModified() - f2.lastModified();
if (diff > 0)
return 1;
else if (diff == 0)
return 0;
else
return -1;
}
public boolean equals(Object obj) {
return true;
}
}
}
- 通过map可以避免创建实体
- 通过反射创建实体
- 将map通过反射转化为实体
- list map 通过组装可以变成map(通过put)
- 通过Microsoft Entity Framework创建模型实体类
- 基本实体--弱化到下游实体上 ;;; 上游的关系变成map set可以控制值,变成List 也可以,可控性更高
- CDAtA避免解析html实体
- 【实体转map】
- Java 实体转Map
- 传入Map返回实体
- 可以避免oom
- controller通过map返回减少dto类的创建
- composer 创建一个github 项目,然后可以通过composer下载
- Effective Java Item5-在可以重用对象的时候避免创建对象
- Effective Java Item5-在可以重用对象的时候避免创建对象
- 通过myeclipse生成实体
- 关于Play Framework通过JPA创建实体和表的体会
- java中利用类名生成Class对象,通过class对象创建实体类的理解
- ThreadPoolExecutor运转机制详解
- VMWare 中3种网络模式
- Linux开机启动过程详细分析
- linux i2c-gpio 模拟i2c时序出现oops错误
- jquery ajax,ashx,json用法小结
- 通过map可以避免创建实体
- 基于Cadence_Allegro的高速PCB设计信号完整性分析与仿真
- WebLogic 10.3.5.0 集群环境配置(一)
- Objective-C - 异常处理(Exception)
- 防止ASP.NET按钮多次提交的办法 .
- ubuntu下加入eclipse启动菜单
- 静态select绑定数据
- 新版本Android Market增加默认自动下载更新功能
- document.cookie的使用