package com;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class CodeTableTest {
public static void main(String args[]) {
/*
*parentMap:键作为类型,值保存此类型的所有汉化对应关系
*形如:<B:<001:海淀>>
*/
Map<String, Map<String, String>> parentMap = new HashMap<String, Map<String, String>>();
Map<String, String> childMap = null ;
Set<String> setType = new HashSet<String>();//保存类型
String tempType = null ;//保存临时类型
List<CodeTable> allCode = null;//保存数据库表所有数据
allCode = getAllCode();
for(CodeTable tempCode:allCode){
setType.add(tempCode.getCodeType());
}
Iterator<String> iteratorType = setType.iterator();
while(iteratorType.hasNext()){//此循环需要优化
tempType =iteratorType.next();
childMap = new HashMap<String, String>();
for(CodeTable tempCode:allCode){
if(tempType.equals(tempCode.getCodeType())){
childMap.put(tempCode.getCodeKey(), tempCode.getCodeName());
}
}
parentMap.put(tempType, childMap);
}
//以上过程在应用启动时需要一次对parentMap组装完数据,以后只需对parentMap操作即可
//测试
System.out.println(getAllName("S",parentMap));
System.out.println(getName("B","001",parentMap));
}
/**
* 通过类型和键值,返回名称,提供给页面进行汉化
* return String
*/
private static String getName(String codeType,String codeKey,Map<String, Map<String, String>> map){
String tempName = getAllName(codeType,map).get(codeKey) ;
if(tempName==null){
tempName = "没有对应值" ;
}
return tempName ;
}
/**
* 通过类型得到Map,提供给页面组装成下拉列表
* return Map
*/
private static Map<String, String> getAllName(String codeType,Map<String, Map<String, String>> map){
Map<String, String> tempMap = map.get(codeType);
if(tempMap==null){
tempMap = new HashMap<String, String>();
tempMap.put("", "--请选择--");
return tempMap ;
}
return tempMap;
}
private static List<CodeTable> getAllCode() {
CodeTable ct = null;
List<CodeTable> allCode = new ArrayList<CodeTable>();
ct = new CodeTable();
ct.setCodeType("B");
ct.setCodeName("海淀");
ct.setCodeKey("001");
allCode.add(ct);
ct = new CodeTable();
ct.setCodeType("B");
ct.setCodeName("丰台");
ct.setCodeKey("002");
allCode.add(ct);
ct = new CodeTable();
ct.setCodeType("B");
ct.setCodeName("朝阳");
ct.setCodeKey("003");
allCode.add(ct);
//////////////////////////
ct = new CodeTable();
ct.setCodeType("S");
ct.setCodeName("浦东东区");
ct.setCodeKey("004");
allCode.add(ct);
ct = new CodeTable();
ct.setCodeType("S");
ct.setCodeName("浦东西区");
ct.setCodeKey("005");
allCode.add(ct);
ct = new CodeTable();
ct.setCodeType("S");
ct.setCodeName("浦东南区");
ct.setCodeKey("006");
allCode.add(ct);
return allCode;
}
}
class CodeTable {
private String codeType;
private String codeName;
private String codeKey;
public String getCodeType() {
return codeType;
}
public void setCodeType(String codeType) {
this.codeType = codeType;
}
public String getCodeName() {
return codeName;
}
public void setCodeName(String codeName) {
this.codeName = codeName;
}
public String getCodeKey() {
return codeKey;
}
public void setCodeKey(String codeKey) {
this.codeKey = codeKey;
}
}
分享到:
相关推荐
GB2312字符编码表是中国国家标准的一种简体中文字符编码方案,主要应用于早期的计算机系统和电子设备中,用于存储和传输汉字。这个编码标准是1975年制定的,目的是解决汉字在计算机中的表示问题,为当时的信息处理...
"代码表客户端 使用HackerEarth代码编译API的在线代码编译器" 描述表明CodeTable是一个客户端应用,可能是一个Web应用或者桌面应用,它使用HackerEarth的代码编译API来让用户能够在线编写和运行代码。这通常包括语言...
### 英特尔CodeTable:全面解析英特尔汇编指令集 #### 概述 英特尔CodeTable是英特尔官方发布的,用于汇总其所有处理器架构下支持的汇编机器指令的详尽列表。这一资源对于理解计算机底层操作、编写高效系统级代码...
霍夫曼编码是一种高效的数据压缩方法,特别是在文本和图像数据压缩领域广泛应用。它基于频率的变字长编码技术,能够将出现频率高的字符用较短的编码表示,而出现频率低的字符用较长的编码表示,以此达到平均码长最短...
"the_code_table.rar_Table" 提供的资源聚焦于中文字码表及其在C语言环境下的实现,这对于理解和处理中文字符在软件开发中的应用具有深远意义。 首先,我们要理解什么是中文字码表。中文字码表是一种映射关系,它将...
在实际应用中,`tableExport`还支持其他格式,如CSV、TXT、JSON等。并且,通过调整插件配置,可以控制是否导出隐藏行或列,以及是否包含表头等。 总之,`tableExport`是一个强大的前端工具,能够帮助开发者快速实现...
5. **Sample Applications and Code**:提供多种示例应用程序和源代码,展示如何在实际项目中使用Tablet PC API。 6. **Documentation**:详尽的开发者文档,解释如何使用SDK中的各种组件和服务。 开发Tablet PC...
标题"CRC table-driven Program with C CODE"指出,这是一个使用C语言编写的CRC校验程序,它利用了查表法来提高计算效率。这种方法相比直接的位操作,可以显著减少CPU的计算负担,尤其适用于需要频繁进行CRC校验的...
描述中提到的"Include file for TIPC name table code."表明这个压缩包包含的文件是用于构建或理解TIPC名称表功能的头文件和源代码。在C语言编程中,".c"文件通常包含实现函数和数据结构的源代码,而".h"文件则用于...
《GB18030与Unicode字符编码映射解析》 在信息技术领域,字符...`code_table_bmp_to_gb18030.txt`这样的映射表则是实现这一目标的关键资源,通过它,我们可以有效地处理和转换Unicode BMP字符到GB18030编码的过程。
"VC.test.design.HTML.table.code.rar_Table_VC Html"这个标题暗示我们这里包含的是关于Visual C++(VC)测试下HTML表格设计的一些经典代码示例。这些代码可能是为了帮助开发者更高效地创建和定制HTML表格,从而在...
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="path/to/tablefilter/tablefilter.min.js"> ``` 接下来,我们需要准备一个HTML表格,为其添加必要的属性以便tablefilter识别。...
这里运用了两个代码表`codetable`和`codetable_dian`,分别对应不同的显示效果,包括小数点的显示。值得注意的是,为了实现数字的动态刷新,代码中采用了延时函数`delay()`,确保了显示效果的平滑性和准确性。 ### ...
### USB HID到PS/2扫描码转换表:深入解析 #### 概述 在计算机外设领域,USB(通用...随着技术的发展,虽然USB已成为主流,但了解并掌握这种转换机制对于维护老旧系统或特定应用场景下的设备兼容性仍具有重要意义。
这个插件适用于那些需要处理大量数据并需要提供用户友好的交互体验的Web应用。 一、TableFilter的主要功能 1. **实时过滤**:TableFilter允许用户在表格的任何列上输入关键词,即时过滤出符合搜索条件的行。这极...
在实际应用中,你可能需要根据具体需求进行一些定制,例如添加样式到Excel,处理特殊的单元格格式,或者处理包含日期、时间等特殊类型的数据。尽管table2excel提供了基础的导出功能,但对于复杂的表格结构,可能需要...
在本项目中,我们关注的是一个名为"Simple Table Generator App in Python"的开源代码实现,它是一个用Python语言编写的简单表格生成应用。这个应用程序旨在帮助用户快速、方便地创建和管理表格数据,无需深入了解...
在提供的`bootstrap-table-examples-master`压缩包中,包含了各种Bootstrap Table的实例,从基础用法到高级功能,这些示例可以帮助开发者更好地理解和应用Bootstrap Table。通过查看和运行这些示例,你可以学习如何...
本文将深入探讨jQuery.table2excel的工作原理、使用方法及其在实际项目中的应用。 首先,我们需要了解jQuery.table2excel的核心功能。这个插件主要解决了以下问题:在不依赖服务器端处理的情况下,直接在客户端将...
标题"C_code_table_data_show_related"暗示了我们可能需要处理表格或数据库中的相关数据,并用C语言来实现这一功能。下面,我们将深入探讨如何在C程序中实现这个目标。 首先,理解“相关表数据”意味着我们有多个...