博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EXCEL单元格的获取——多例模式
阅读量:5811 次
发布时间:2019-06-18

本文共 1309 字,大约阅读时间需要 4 分钟。

       因为Excel的单元格的行列与单元格是一一相应的,行与列组成的是一对联合主键。给定一个单元格行列或者给定一个单元格名称。须要找到相应的单元格;这样就形成了一种映射关系。须要使用单例模式的变式——多例模式,进行实现。

       多例模式的核心是用一个HashMap<K,V>来实现这样的映射关系。V明显是目标单元格。K必须保存单元格的行与列一一相应信息,能够用单元格名称来表示;实现代码例如以下:

import java.util.ArrayList;import java.util.HashMap;/** * @author lcx * */public class CellMap {	private static HashMap
map=new HashMap(); private CellMap(String cellName) { System.out.println("新建一个:"+cellName); map.put(cellName, this); } public static CellMap getInstance(int row,int col) { return getInstance( cellName(row,col)); } public static CellMap getInstance(String cellName) { if(map.get(cellName)!=null) return map.get(cellName); else return new CellMap(cellName); } private static String cellName(int row,int col) { ArrayList
list=new ArrayList(); while(col>0) { list.add((char) (col%26+'A'-1)); col/=26; } StringBuffer buffer=new StringBuffer(); for(int i=list.size()-1;i>=0;i--) buffer.append(list.get(i)); buffer.append(""+row); return buffer.toString(); } public static void main(String[] args) { //首次获取 for(int i=1;i<10;i++) for(int j=1;j<10;j++) { CellMap.getInstance(i, j); } //再次获取 for(int i=1;i<10;i++) for(int j=1;j<10;j++) { CellMap.getInstance(i, j); } }}

转载于:https://www.cnblogs.com/gavanwanggw/p/6842618.html

你可能感兴趣的文章
Php实现版本比较接口
查看>>
删除设备和驱动器中软件图标
查看>>
第四章 TCP粘包/拆包问题的解决之道---4.1---
查看>>
html语言
查看>>
从源码看集合ArrayList
查看>>
spring-boot支持websocket
查看>>
菜鸟笔记(一) - Java常见的乱码问题
查看>>
我理想中的前端工作流
查看>>
记一次Git异常操作:将多个repository合并到同一repository的同一分支
查看>>
CodeIgniter 3.0 新手捣鼓源码(一) base_url()
查看>>
Chrome 广告屏蔽功能不影响浏览器性能
查看>>
vSphere 6将于2月2日全球同步发表
查看>>
Android状态栏实现沉浸式模式
查看>>
让你的APP实现即时聊天功能
查看>>
iOS 绝对路径和相对路径
查看>>
使用Openfiler搭建ISCSI网络存储
查看>>
应用新安全组 - 每天5分钟玩转 OpenStack(116)
查看>>
4.3. 键盘设置
查看>>
iOS - UIViewController
查看>>
IntPtr 转 string
查看>>