- 浏览: 125521 次
- 性别:
- 来自: 南京
-
文章分类
- 全部博客 (97)
- Jquery (3)
- Oracle (11)
- JS (12)
- Struts2 (4)
- java (17)
- 课程 (1)
- Jboss (0)
- EJB (0)
- MAVEN (1)
- Design Pattern (0)
- css (2)
- axis1.4 (2)
- hessian (1)
- big data (1)
- Tomcat (3)
- redis (1)
- OVAL validate (1)
- express (1)
- eclipse (1)
- name node 无法启动 (1)
- hadoop (2)
- mysql (1)
- spring (1)
- sbt (1)
- angular (1)
- cas (1)
- JSSDK (1)
- 微信支付 (1)
- 小程序 (1)
- mybatis (1)
- jxta (1)
- idea (2)
- lay ui (1)
- sofa (1)
最新评论
-
duanwenping520:
这也太省事了把!
sj22
Array.prototype.remove=function(i){
if(isNaN(i) || i<0 || i>=this.length){
return ;
}
var rv=this[i];
for(;i<this.length-1;i++){
this[i]=this[i+1];
}
this.pop();
return rv;
}
var keyArr;
var valueArr;
function HashTable_put(key,value){
var i=0;
for(;i<keyArr.length;i++){
if(keyArr[i]==key){
return false;
}
}
keyArr.push(key);
valueArr.push(value);
return true;
}
function HashTable_set(key,value){
var i=0;
for(;i<keyArr.length;i++){
if(keyArr[i]==key){
valueArr[i]=value;
return true;
}
}
return false;
}
function HashTable_get(key){
if(typeof(key)=="number" && parseInt(key)==key && key+""==key){
return HashTable_get_i(key);
}else if(typeof(key)=="string"){
return HashTable_get_s(key);
}else{
return ;
}
}
function HashTable_get_i(key){
if(valueArr.length<=key){
return ;
}else{
return valueArr[key];
}
}
function HashTable_get_s(key){
var i=0;
for(;i<keyArr.length;i++){
if(keyArr[i]==key){
break;
}
}
if(i==keyArr.length){
return ;
}
return valueArr[i];
}
function HashTable_remove(key){
if(typeof(key)=="number" && parseInt(key)==key && key+""==key){
return HashTable_remove_i(key);
}else if(typeof(key)=="string"){
return HashTable_remove_s(key);
}else{
return ;
}
}
function HashTable_remove_i(key){
keyArr.remove(key);
return valueArr.remove(key);
}
function HashTable_remove_s(key){
var i=0;
for(;i<keyArr.length;i++){
if(keyArr[i]==key){
break;
}
}
if(i==keyArr.length){
return ;
}
keyArr.remove(i);
return valueArr.remove(i);
}
function HashTable_getKeys(){
return keyArr;
}
function HashTable_getValues(){
return valueArr;
}
function HashTable_getLength(){
return valueArr.length;
}
function HashTable(){
keyArr=new Array();
valueArr=new Array();
this.put=HashTable_put;
this.set=HashTable_set;
this.get=HashTable_get;
this.remove=HashTable_remove;
this.getKeys=HashTable_getKeys;
this.getValues=HashTable_getValues;
this.getLength=HashTable_getLength;
}
$(function() {
$("#tbSave").click(function() {
var selChk= document.getElementsByName("chkTypes");
var count =0;
var a=new HashTable();
// var b= new HashTable();
for(var i=0;i<selChk.length;i++){//对选择的品牌构造Map
if(selChk[i].checked){
var cafN1 =Trim(selChk[i].parentElement.parentElement.children(1).children(0).value);
var typeName =Trim(selChk[i].parentElement.parentElement.children(2).children(0).value);
var temp=a.get(cafN1);
if(temp==undefined){
a.put(cafN1,1);
}else{
//alert(cafN1);
temp+=1;
a.set(cafN1,temp);
}
var tempb= a.get(typeName);
if(tempb==undefined){
a.put(typeName,1)
}else{
tempb+=1;
a.set(typeName,tempb);
}
count++
}
}
var sel= document.getElementsByName("sel");
var bidType="";
for(var j=0;j<sel.length;j++){
if(sel[j].checked){
if(sel[j].value=="1"){
if(count==0){
alert("请至少选择一种品牌");
return false;
}
if(count >1){
alert("只能选择一种品牌");
return false;
}
bidType="单品牌";
}else{
if(count<9){
alert("请至少选择9种品牌");
return false;
}
if(count >9){
alert("只能选择9种品牌");
return false;
}
bidType="多品牌";
}
$("#ordersAction_bidPlans_bidPlanType").val(sel[j].value);
}
}
var chks= document.getElementsByName("chk");
var kCount=0;
for(var k=0;k<chks.length;k++){
if(chks[k].checked){
kCount++;
}
}
if($("#ordersAction_bidPlans_bidPlanType").val()=="1"){
if(kCount==0){
alert("请至少选择一种类别");
return false;
}
if(kCount >1){
alert("只能选择一种类别");
return false;
}
}else{
if(kCount<3){
alert("请至少选择三种类别");
return false;
}
if(kCount >3){
alert("只能选择三种类别");
return false;
}
}
for(var k=0;k<chks.length;k++){
if(chks[k].checked){
var textT=chks[k].parentElement.children(1).innerHTML;
var tCount= a.get(Trim(textT));
if(tCount==undefined){
alert("选定的品牌中不存在类别:"+textT+",请重新选定类别");
return false;
}
if($("#ordersAction_bidPlans_bidPlanType").val()=="2"){//多品牌需要进一步验证类别个数
if(tCount>3){
alert(textT+":类别的品牌只能选择3种!")
return false;
}if(tCount>3){
alert(chks[k].text+":类别的品牌至少选择3种!")
return false;
}
}
}
}
var aValues= a.getValues();
var aKeys= a.getKeys();
// alert(aKeys.length);
for(var t=0;t<aValues.length;t++){
//alert(aValues[t]+aKeys[t]);
if($("#ordersAction_bidPlans_bidPlanType").val()=="2"){//多品牌需要进一步验证品牌个数
if(aValues[t]>3){
alert(aKeys[t] +":品牌只能选择三种!")
return false;
} if (aValues[t]<3){
alert(aKeys[t] +":品牌至少选择三种!")
return false;
}
}
}
if(count==0){
alert("请至少选择一种品牌");
return false;
}
var bidId=$("#ordersAction_bidPlans_bidId").val();
var confirmBox= confirm("确认保存选定的品牌吗?");
if(confirmBox){
$("#ordersAction_action").val("saveBidPlans");
$(":form").submit();
window.returnValue=bidType+";"+bidId;
}
});
<tr vAlign="top" align="center" >
<td align="center" >
<table cellSpacing="0" cellPadding="0" width="100%" bgColor="#f2f4f7" border="0">
<tr height="25">
<td vAlign="bottom">
<table border="0" cellSpacing="1" cellPadding="1" width="100%" class="table" >
<tr vAlign="bottom" height="26" class="tr_3">
<td vAlign="middle" align="left" width="130">品目:${bidPlans.catName} <s:hidden name="catNo" /></td>
<td> 单品牌:<input type="radio" name="sel" value="1" /></td>
<td >多品牌:<input type="radio" name="sel" checked value="2" /></td>
</tr>
<tr vAlign="bottom" height="26" class="tr_3">
<td vAlign="middle" align="left" width="130">类别: </td>
<td colspan="2">
<table cellSpacing="10" cellPadding="10" >
<s:checkboxlist name="chk" theme="xhtml" template="customcheckboxlist.ftl" list="typeList" listKey="typeId" listValue="typeName" ></s:checkboxlist>
</table>
</td>
</tr>
<tr id="BtnTabTr">
<td colspan="3" align="center">
</td>
</tr>
</table>
</td>
</tr>
<%--<% if (UsrType="2") then %>
<tr height="525">
<tr height="488">
<%end if%>
--%>
<tr>
<td vAlign="top" align="center" width="100%" >
<table class="OrderBodyTop" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"
cellSpacing="0" cellPadding="0" width="100%">
<tr >
<td class="OrderCellItem" align="center" width="681">
<s:if test="%{chkTypes!=null}">
<b>已选定的品牌如下:</b>
</s:if>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td vAlign="top" align="center" width="100%">
<table class="OrderBodyTop" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"
cellSpacing="0" cellPadding="0" width="100%">
<tr height="25">
<td class="OrderCellTop" align="left" width="80" > 选择<br> <input type='checkbox' name='selcAll' id='selcAll' />
</td>
<td class="OrderCellTop" align="center" width="80" > 品牌
</td>
<td class="OrderCellTop" align="center" width="50" > 类别
</td>
<td class="OrderCellTop" align="center" width="248" >型号<br>
</td>
</tr>
<s:iterator value="bidPlansDtl" status="sta" var="x">
<tr height="25" id='${sta.count+2}'class="tr_3" >
<td class="OrderCellBt" width="40" align="left">
<s:property value="%{#sta.count}"/><input name="chkTypes" type="checkbox" value="${cafNo}" />
<s:hidden name="bidPlansDtl[%{#sta.index}].cafNo"/>
</td>
<td class="OrderCellItem" align="center">
<s:textfield name="bidPlansDtl[%{#sta.index}].cafN1" readonly ="true" cssClass="NoneBorder" cssStyle="WIDTH: 100%; HEIGHT: 18px; TEXT-ALIGN: left"/>
</td>
<td class="OrderCellItem" align="center">
<s:textfield name="bidPlansDtl[%{#sta.index}].typeName" cssClass="NoneBorder" cssStyle="WIDTH: 100%; HEIGHT: 18px; TEXT-ALIGN: left"/>
<s:hidden name="bidPlansDtl[%{#sta.index}].typeId"/>
</td>
<td class="OrderCellItem" align="center"><s:textfield name="bidPlansDtl[%{#sta.index}].cafN2" cssClass="NoneBorder" cssStyle="WIDTH: 100%; HEIGHT: 18px; TEXT-ALIGN: center" />
</td>
</tr>
</s:iterator>
</table>
</td>
</tr>
if(isNaN(i) || i<0 || i>=this.length){
return ;
}
var rv=this[i];
for(;i<this.length-1;i++){
this[i]=this[i+1];
}
this.pop();
return rv;
}
var keyArr;
var valueArr;
function HashTable_put(key,value){
var i=0;
for(;i<keyArr.length;i++){
if(keyArr[i]==key){
return false;
}
}
keyArr.push(key);
valueArr.push(value);
return true;
}
function HashTable_set(key,value){
var i=0;
for(;i<keyArr.length;i++){
if(keyArr[i]==key){
valueArr[i]=value;
return true;
}
}
return false;
}
function HashTable_get(key){
if(typeof(key)=="number" && parseInt(key)==key && key+""==key){
return HashTable_get_i(key);
}else if(typeof(key)=="string"){
return HashTable_get_s(key);
}else{
return ;
}
}
function HashTable_get_i(key){
if(valueArr.length<=key){
return ;
}else{
return valueArr[key];
}
}
function HashTable_get_s(key){
var i=0;
for(;i<keyArr.length;i++){
if(keyArr[i]==key){
break;
}
}
if(i==keyArr.length){
return ;
}
return valueArr[i];
}
function HashTable_remove(key){
if(typeof(key)=="number" && parseInt(key)==key && key+""==key){
return HashTable_remove_i(key);
}else if(typeof(key)=="string"){
return HashTable_remove_s(key);
}else{
return ;
}
}
function HashTable_remove_i(key){
keyArr.remove(key);
return valueArr.remove(key);
}
function HashTable_remove_s(key){
var i=0;
for(;i<keyArr.length;i++){
if(keyArr[i]==key){
break;
}
}
if(i==keyArr.length){
return ;
}
keyArr.remove(i);
return valueArr.remove(i);
}
function HashTable_getKeys(){
return keyArr;
}
function HashTable_getValues(){
return valueArr;
}
function HashTable_getLength(){
return valueArr.length;
}
function HashTable(){
keyArr=new Array();
valueArr=new Array();
this.put=HashTable_put;
this.set=HashTable_set;
this.get=HashTable_get;
this.remove=HashTable_remove;
this.getKeys=HashTable_getKeys;
this.getValues=HashTable_getValues;
this.getLength=HashTable_getLength;
}
$(function() {
$("#tbSave").click(function() {
var selChk= document.getElementsByName("chkTypes");
var count =0;
var a=new HashTable();
// var b= new HashTable();
for(var i=0;i<selChk.length;i++){//对选择的品牌构造Map
if(selChk[i].checked){
var cafN1 =Trim(selChk[i].parentElement.parentElement.children(1).children(0).value);
var typeName =Trim(selChk[i].parentElement.parentElement.children(2).children(0).value);
var temp=a.get(cafN1);
if(temp==undefined){
a.put(cafN1,1);
}else{
//alert(cafN1);
temp+=1;
a.set(cafN1,temp);
}
var tempb= a.get(typeName);
if(tempb==undefined){
a.put(typeName,1)
}else{
tempb+=1;
a.set(typeName,tempb);
}
count++
}
}
var sel= document.getElementsByName("sel");
var bidType="";
for(var j=0;j<sel.length;j++){
if(sel[j].checked){
if(sel[j].value=="1"){
if(count==0){
alert("请至少选择一种品牌");
return false;
}
if(count >1){
alert("只能选择一种品牌");
return false;
}
bidType="单品牌";
}else{
if(count<9){
alert("请至少选择9种品牌");
return false;
}
if(count >9){
alert("只能选择9种品牌");
return false;
}
bidType="多品牌";
}
$("#ordersAction_bidPlans_bidPlanType").val(sel[j].value);
}
}
var chks= document.getElementsByName("chk");
var kCount=0;
for(var k=0;k<chks.length;k++){
if(chks[k].checked){
kCount++;
}
}
if($("#ordersAction_bidPlans_bidPlanType").val()=="1"){
if(kCount==0){
alert("请至少选择一种类别");
return false;
}
if(kCount >1){
alert("只能选择一种类别");
return false;
}
}else{
if(kCount<3){
alert("请至少选择三种类别");
return false;
}
if(kCount >3){
alert("只能选择三种类别");
return false;
}
}
for(var k=0;k<chks.length;k++){
if(chks[k].checked){
var textT=chks[k].parentElement.children(1).innerHTML;
var tCount= a.get(Trim(textT));
if(tCount==undefined){
alert("选定的品牌中不存在类别:"+textT+",请重新选定类别");
return false;
}
if($("#ordersAction_bidPlans_bidPlanType").val()=="2"){//多品牌需要进一步验证类别个数
if(tCount>3){
alert(textT+":类别的品牌只能选择3种!")
return false;
}if(tCount>3){
alert(chks[k].text+":类别的品牌至少选择3种!")
return false;
}
}
}
}
var aValues= a.getValues();
var aKeys= a.getKeys();
// alert(aKeys.length);
for(var t=0;t<aValues.length;t++){
//alert(aValues[t]+aKeys[t]);
if($("#ordersAction_bidPlans_bidPlanType").val()=="2"){//多品牌需要进一步验证品牌个数
if(aValues[t]>3){
alert(aKeys[t] +":品牌只能选择三种!")
return false;
} if (aValues[t]<3){
alert(aKeys[t] +":品牌至少选择三种!")
return false;
}
}
}
if(count==0){
alert("请至少选择一种品牌");
return false;
}
var bidId=$("#ordersAction_bidPlans_bidId").val();
var confirmBox= confirm("确认保存选定的品牌吗?");
if(confirmBox){
$("#ordersAction_action").val("saveBidPlans");
$(":form").submit();
window.returnValue=bidType+";"+bidId;
}
});
<tr vAlign="top" align="center" >
<td align="center" >
<table cellSpacing="0" cellPadding="0" width="100%" bgColor="#f2f4f7" border="0">
<tr height="25">
<td vAlign="bottom">
<table border="0" cellSpacing="1" cellPadding="1" width="100%" class="table" >
<tr vAlign="bottom" height="26" class="tr_3">
<td vAlign="middle" align="left" width="130">品目:${bidPlans.catName} <s:hidden name="catNo" /></td>
<td> 单品牌:<input type="radio" name="sel" value="1" /></td>
<td >多品牌:<input type="radio" name="sel" checked value="2" /></td>
</tr>
<tr vAlign="bottom" height="26" class="tr_3">
<td vAlign="middle" align="left" width="130">类别: </td>
<td colspan="2">
<table cellSpacing="10" cellPadding="10" >
<s:checkboxlist name="chk" theme="xhtml" template="customcheckboxlist.ftl" list="typeList" listKey="typeId" listValue="typeName" ></s:checkboxlist>
</table>
</td>
</tr>
<tr id="BtnTabTr">
<td colspan="3" align="center">
</td>
</tr>
</table>
</td>
</tr>
<%--<% if (UsrType="2") then %>
<tr height="525">
<tr height="488">
<%end if%>
--%>
<tr>
<td vAlign="top" align="center" width="100%" >
<table class="OrderBodyTop" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"
cellSpacing="0" cellPadding="0" width="100%">
<tr >
<td class="OrderCellItem" align="center" width="681">
<s:if test="%{chkTypes!=null}">
<b>已选定的品牌如下:</b>
</s:if>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td vAlign="top" align="center" width="100%">
<table class="OrderBodyTop" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"
cellSpacing="0" cellPadding="0" width="100%">
<tr height="25">
<td class="OrderCellTop" align="left" width="80" > 选择<br> <input type='checkbox' name='selcAll' id='selcAll' />
</td>
<td class="OrderCellTop" align="center" width="80" > 品牌
</td>
<td class="OrderCellTop" align="center" width="50" > 类别
</td>
<td class="OrderCellTop" align="center" width="248" >型号<br>
</td>
</tr>
<s:iterator value="bidPlansDtl" status="sta" var="x">
<tr height="25" id='${sta.count+2}'class="tr_3" >
<td class="OrderCellBt" width="40" align="left">
<s:property value="%{#sta.count}"/><input name="chkTypes" type="checkbox" value="${cafNo}" />
<s:hidden name="bidPlansDtl[%{#sta.index}].cafNo"/>
</td>
<td class="OrderCellItem" align="center">
<s:textfield name="bidPlansDtl[%{#sta.index}].cafN1" readonly ="true" cssClass="NoneBorder" cssStyle="WIDTH: 100%; HEIGHT: 18px; TEXT-ALIGN: left"/>
</td>
<td class="OrderCellItem" align="center">
<s:textfield name="bidPlansDtl[%{#sta.index}].typeName" cssClass="NoneBorder" cssStyle="WIDTH: 100%; HEIGHT: 18px; TEXT-ALIGN: left"/>
<s:hidden name="bidPlansDtl[%{#sta.index}].typeId"/>
</td>
<td class="OrderCellItem" align="center"><s:textfield name="bidPlansDtl[%{#sta.index}].cafN2" cssClass="NoneBorder" cssStyle="WIDTH: 100%; HEIGHT: 18px; TEXT-ALIGN: center" />
</td>
</tr>
</s:iterator>
</table>
</td>
</tr>
发表评论
-
websocket 不同的聊天框显示
2016-05-16 22:48 1010easui tab 打开相同的表单,生成动态的 div,根据d ... -
kendo ui export all pdf
2015-08-18 17:20 1366http://www.telerik.com/forums/e ... -
angular js开发文档
2015-03-23 17:32 723http://docs.ngnice.com/guide/in ... -
Issue using h:commandLink with rendered attribute
2014-11-21 10:41 655http://www.coderanch.com/t/5221 ... -
blog book
2013-02-18 13:48 661http://blog.jobbole.com/707/ -
ie 8 text-align :center 居左
2013-01-16 17:52 917在第2个div里面加上 既可以居中 margin: 0 a ... -
js动态增加行
2012-01-05 09:40 880<!DOCTYPE HTML PUBLIC " ... -
浏览器缓存和frame页面css失效
2011-11-15 14:15 1107<%@ page language="java ... -
人民币大小写转换
2011-11-03 14:32 855function convertCurrency(curren ... -
css页面只读
2011-10-08 10:33 822<style type="text/css&q ... -
js刷新父页面
2011-09-30 13:46 8251.window showMadialog,刷新父页面,关闭自 ...
相关推荐
JS版的哈希表,仿C#版,但有些功能更好用
从提供的文件内容来看,该文档主要介绍了JavaScript中一种名为"hashtable"的数据结构的修正版,它允许用户在JavaScript环境中使用类似散列表或哈希表的数据结构。以下是根据文件内容总结的知识点: 1. **JavaScript...
一个用javascript写的hashtable类
在IT行业中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于Web服务和应用程序之间的数据传输。它以其简洁、易于阅读和编写的特点,成为开发者们首选的序列化方式。与此相关的,`...
- **判断是否包含特定键**:`ht.Contains(key);` 4. **实例代码** 下面是两个简单的C#程序示例,演示如何创建和操作`HashTable`。 示例1: ```csharp using System; using System.Collections; class ...
哈希表(Hashtable)是.NET框架中的一种常用数据结构,主要用作键值对存储,它提供了快速的数据存取方式。在WinForm应用程序中,我们可能会利用Hashtable来管理各种对象,尤其是在需要高效查找和操作数据时。下面将...
《深入解析HashTable:C语言实现的精髓》 在计算机科学中,哈希表(HashTable)是一种数据结构,它实现了关联数组的抽象数据类型,能够快速地进行查找、插入和删除操作。哈希表通过将键(Key)映射到表中的一个位置...
### JavaScript HashTable 实现解析 #### 一、引言 在计算机科学中,哈希表(HashTable)是一种常用的数据结构,它通过一个称为哈希函数的机制将键映射到数组的一个位置上,从而实现对数据的高效存取。本文将深入...
- **HashTable**:提供了 `contains` 方法来判断是否存在某个值(已过时),而 `containsKey` 和 `containsValue` 是 `Map` 接口的方法。 8. **扩展性**: - **HashMap**:在 Java 8 中引入了并行化能力,通过 `...
在ASP.NET中,Hashtable是一种常用的数据结构,它是一个键值对集合,允许程序员存储和检索对象。本篇文章将深入探讨如何在ASP.NET中遍历Hashtable,以及相关的重要知识点。 首先,理解Hashtable的基本概念至关重要...
### HashMap与HashTable的区别详解 #### 引言 在Java编程中,`HashMap`与`HashTable`作为两种常用的数据结构,经常被用来存储键值对数据。尽管它们在功能上相似,但在实现细节、性能表现以及使用场景方面存在显著...
在Java编程语言中,`Hashtable`是一个非常基础且重要的数据结构,它属于集合框架的一部分,提供了键值对(key-value pairs)的存储功能。`Hashtable`类是线程安全的,意味着在多线程环境下,它能确保数据的一致性和...
Hashtable是C#编程语言中的一种内置数据结构,属于.NET Framework的System.Collections命名空间。它是一个基于散列的键值对集合,允许程序员快速查找、添加和删除元素。在本篇文档中,我们将深入探讨如何在C#中有效...
HashMap和HashTable底层原理以及常见面试题 HashMap和HashTable是Java中两个常用的数据结构,都是基于哈希表实现的,但它们之间存在着一些关键的区别。本文将深入探讨HashMap和HashTable的底层原理,并总结常见的...
### HashMap与HashTable的区别 在Java编程语言中,`HashMap`和`HashTable`是两种非常重要的数据结构,它们都实现了`Map`接口,并提供了键值对的存储方式。这两种数据结构虽然相似,但在实现细节和使用场景上存在...
### Hashtable和HashMap的区别 在Java编程语言中,`Hashtable`和`HashMap`是两种非常重要的数据结构,它们都实现了`Map`接口,用于存储键值对。尽管它们有着相似的功能,但在实现细节和应用场景上存在显著差异。接...
在Java编程语言中,`Hashtable`是`Collections`框架的一部分,它是一个同步的键值对存储容器。在早期的Java版本中,`Hashtable`并没有直接支持泛型,这意味着你可以在其中存储任何类型的键(`Object`)和值(`Object...
### HashMap与Hashtable的区别 在Java编程语言中,`HashMap`和`Hashtable`是两种非常重要的数据结构,它们都用于存储键值对。然而,在实际应用过程中,这两种数据结构有着本质的不同,下面将详细介绍这些差异。 ##...
### HashMap与HashTable和HashSet的区别 #### 一、概述 在Java集合框架中,`HashMap`, `HashTable` 和 `HashSet` 是三个重要的数据结构,它们分别实现了`Map`接口和`Set`接口,提供了不同的功能来满足不同的编程...
于是,本人使用JavaScript的数组模拟Hashtable集合,说明JavaScript数组的特别之外。 环境:Windows XP Professional, IE 6.0 阅读对象:所有学习JavaScript的学员。 注:本示例代码注释非常详细,请仔细阅读体会...